一連の包括的な属性を持つ製品をモデル化しようとしています。通常、オンライン ストアではテキストの説明を使用して、特定の製品の属性を一覧表示します。ただし、このソリューションは最適ではありません。
たとえば、次のリンクは、同じ製品のテキスト説明内の属性の不一致を示していますが、メーカーは異なります。
したがって、次のような継承階層を選択しました。
Product
> Component
> GraphicsCard
>NvidiaGraphicsCard
この理由は、各 の属性をきめ細かく制御したいからですProduct
。NvidiaGraphicsCard
これにより、 aには適用されないa に固有の属性を含めることができますATiGraphicsCard
。
サブクラスにフィールドを追加するだけでなく、継承により、OrderItem
a への参照を保持するという点でポリモーフィズムを利用できることに注意してくださいProduct
。これが、合成を除外した理由です。
このような深い継承階層を持つことに問題はありますか?もしそうなら、この問題を処理するための解決策やパターンはありますか?