【发布时间】:2012-10-11 19:19:25
【问题描述】:
我正在尝试使用一组综合属性对产品进行建模。通常,在线商店会使用文本描述来列出特定产品的属性。然而,这个解决方案并不是最优的。
例如,以下链接显示同一产品的文本描述中的属性不一致,但制造商不同:
因此,我选择了如下继承层次结构:
Product > Component > GraphicsCard > NvidiaGraphicsCard
这样做的原因是因为我希望对每个Product 的属性进行细粒度控制。这允许我包含特定于 NvidiaGraphicsCard 的属性,这些属性不适用于 ATiGraphicsCard。
请注意,除了向子类添加更多字段外,继承还允许我利用多态性,让OrderItem 持有对Product 的引用。这就是我排除作曲的原因。
拥有如此深的继承层次是否有问题,如果有,是否有任何解决方案或模式来处理这个问题?
【问题讨论】:
标签: oop inheritance orm language-agnostic domain-driven-design