nhibernate 实例化从其他项目继承的项
本文关键字:继承 项目 其他 实例化 nhibernate | 更新日期: 2023-09-27 18:37:11
我有两个类,Item
和SoldItem
。 SoldItem
继承Item
添加一些属性,例如奖品、销售日期等。
首先我创建一个Item
,当我出售它时,我想创建solditem
。这种设计正确吗?如果是,我如何从项目开始创建已售项目?
我会说这是继承的不当使用。如果您需要通过与是否已售出正交的某些特征将Item
多样化为子类,该怎么办?例如,如果您销售软件,则项目可以在物理介质上交付,可以下载,也可以是订阅;如果您决定也使用继承对这些类进行建模,则您已经有六个类。您添加的每个正交要素都会成为所需类数的乘数。
更好的设计,涉及组合,是有单独的Item
和Sale
类,以及两者之间的链接;然后你可以向Item
类添加功能,以获得相关的Sale
(如果有的话)和vv.,获取Sale
的Item
(应该始终为非空)。在这种情况下,思考关系而不是面向对象可能是一种更好的方法。
如果您只对已售出的物品感兴趣,则可以直接查看Sale
对象,通过相关Item
获取物品信息。如果您对任何项目感兴趣,请获取一个Item
实例,并在需要时查询它以获取Sale
。