我试图用一组全面的属性来模拟产品。通常,在线商店会使用文本描述来列出特定产品的属性。但是,这种解决方案并不是最优的。深层继承层次结构的替代方法?
例如,下面的链接显示属性不一致的同一产品文字描述中,但不同厂家:
因此,我选择了继承层次结构如下:
Product
>Component
>GraphicsCard
>NvidiaGraphicsCard
这样做的原因是因为我想在每个Product
的属性细粒度控制。这使我可以包含特定于NvidiaGraphicsCard
的属性,这些属性不适用于ATiGraphicsCard
。
请注意,除了向子类添加更多字段之外,继承还允许我使用多态性,使OrderItem
拥有对Product
的引用。这是我排除构图的原因。
有这么深的继承层次结构有问题吗?如果有的话,是否有解决方案或可能模式来解决这个问题?