我試圖用一組全面的屬性來模擬產品。通常,在線商店會使用文本描述來列出特定產品的屬性。但是,這種解決方案並不是最優的。深層繼承層次結構的替代方法?
例如,下面的鏈接顯示屬性不一致的同一產品文字描述中,但不同廠家:
因此,我選擇了繼承層次結構如下:
Product
>Component
>GraphicsCard
>NvidiaGraphicsCard
這樣做的原因是因爲我想在每個Product
的屬性細粒度控制。這使我可以包含特定於NvidiaGraphicsCard
的屬性,這些屬性不適用於ATiGraphicsCard
。
請注意,除了向子類添加更多字段之外,繼承還允許我使用多態性,使OrderItem
擁有對Product
的引用。這是我排除構圖的原因。
有這麼深的繼承層次結構有問題嗎?如果有的話,是否有解決方案或可能模式來解決這個問題?