0

スーパークラスCarと 2 つのサブクラスFordとがあるとしPorscheます。これで、グラフィカル ユーザー インターフェイスに適切な表現 (たとえば、車の名前) が表示されるはずです。getCarName()各サブクラスにメソッドを追加できます。

しかし今、車の名前と製造国など、他のプロパティで車を表現したい別の GUI があります。次に、別のメソッドを追加する必要があります。

一般的に言えば、ある種の構成/プロパティを適切な方法で保存したいと考えています。別の表現が必要になるたびに、元のデータ構造 (おそらく多くのサブクラスを含む) を変更するべきではありません。そこで、サブクラスをそのプロパティに関連付ける HashMap を作成し、この HashMap を GUI に渡すことを考えました。

しかし、どのようなキーを使用する必要がありますか? HashMap<Car, String>表現を保存するためだけに車のオブジェクトを作成したくないので、解決策ではありません。String 表現はインスタンスから独立しています。

パターンのデザインも大歓迎です。

4

2 に答える 2

1

任意の車のすべてのプロパティ/属性を POJO (例: CarPropertyPOJO) に保存し、この POJO を使用して必要な属性を表示できます。これは、さまざまなページで一様に使用できます。あなたの質問によると、 CarPropertyPOJOには 2 つのメンバー変数carNameproductionCountryが含まれます。1 台の車のプロパティを表示したいだけの場合は、CarPropertyPOJOオブジェクトを UI に渡すだけで問題が解決します。また、多くの車のプロパティを表形式で表示したい場合は、Collection オブジェクト (ArrayList< CarPropertyPOJO > または HashMap) を渡すことができます。CarSubClassName は、自動車のサブクラスを表すだけです。

于 2012-12-30T15:10:43.900 に答える
0

getProductionCountriesきれいなデザインにするために、クラスのようなメソッドを持ち、Car各サブクラスでオーバーライドできるメソッドを使用したいと思います。新しい車を追加すると、コードをさらに書く必要がありますが、それは避けられません。

于 2012-12-30T14:36:49.757 に答える