0

私は2つのクラスを持っていItemますSoldItem. 賞品、販売日などのプロパティの追加SoldItemから継承します。Item

最初に を作成しItem、販売したら作成したいと思いますsolditem。このデザインは正しいですか?はいの場合、アイテムから始めてソルアイテムを作成するにはどうすればよいですか?

4

1 に答える 1

2

これは継承の不適切な使用だと思います。Item販売されたかどうかに直交する機能によってサブクラスに多様化する必要がある場合はどうすればよいでしょうか? たとえば、ソフトウェアを販売する場合、アイテムは物理メディアで出荷されるか、ダウンロード可能であるか、サブスクリプションである可能性があります。継承も使用してこれらをモデル化する場合は、すでに 6 つのクラスがあります。そして、追加する各直交機能は、必要なクラス数の乗数になります。

構成を含むより良い設計は、ItemSaleクラスを分離し、2 つをリンクすることです。Item次に、クラスに機能を追加して、関連するSaleがある場合はそれを取得し、 vv. はItemof を取得しますSale(これは常に非 null である必要があります)。この文脈では、オブジェクト指向ではなくリレーショナルを考える方がおそらくより良いアプローチです。

販売されたアイテムのみに関心がある場合は、Saleオブジェクトを直接見て、関連する .xml からアイテム情報を取得しますItem。アイテムに興味がある場合は、Itemインスタンスを取得し、必要に応じてSale.

于 2012-06-15T08:13:29.237 に答える