私は2つのクラスを持っていItem
ますSoldItem
. 賞品、販売日などのプロパティの追加SoldItem
から継承します。Item
最初に を作成しItem
、販売したら作成したいと思いますsolditem
。このデザインは正しいですか?はいの場合、アイテムから始めてソルアイテムを作成するにはどうすればよいですか?
私は2つのクラスを持っていItem
ますSoldItem
. 賞品、販売日などのプロパティの追加SoldItem
から継承します。Item
最初に を作成しItem
、販売したら作成したいと思いますsolditem
。このデザインは正しいですか?はいの場合、アイテムから始めてソルアイテムを作成するにはどうすればよいですか?
これは継承の不適切な使用だと思います。Item
販売されたかどうかに直交する機能によってサブクラスに多様化する必要がある場合はどうすればよいでしょうか? たとえば、ソフトウェアを販売する場合、アイテムは物理メディアで出荷されるか、ダウンロード可能であるか、サブスクリプションである可能性があります。継承も使用してこれらをモデル化する場合は、すでに 6 つのクラスがあります。そして、追加する各直交機能は、必要なクラス数の乗数になります。
構成を含むより良い設計は、Item
とSale
クラスを分離し、2 つをリンクすることです。Item
次に、クラスに機能を追加して、関連するSale
がある場合はそれを取得し、 vv. はItem
of を取得しますSale
(これは常に非 null である必要があります)。この文脈では、オブジェクト指向ではなくリレーショナルを考える方がおそらくより良いアプローチです。
販売されたアイテムのみに関心がある場合は、Sale
オブジェクトを直接見て、関連する .xml からアイテム情報を取得しますItem
。アイテムに興味がある場合は、Item
インスタンスを取得し、必要に応じてSale
.