スーパークラスCar
と 2 つのサブクラスFord
とがあるとしPorsche
ます。これで、グラフィカル ユーザー インターフェイスに適切な表現 (たとえば、車の名前) が表示されるはずです。getCarName()
各サブクラスにメソッドを追加できます。
しかし今、車の名前と製造国など、他のプロパティで車を表現したい別の GUI があります。次に、別のメソッドを追加する必要があります。
一般的に言えば、ある種の構成/プロパティを適切な方法で保存したいと考えています。別の表現が必要になるたびに、元のデータ構造 (おそらく多くのサブクラスを含む) を変更するべきではありません。そこで、サブクラスをそのプロパティに関連付ける HashMap を作成し、この HashMap を GUI に渡すことを考えました。
しかし、どのようなキーを使用する必要がありますか? HashMap<Car, String>
表現を保存するためだけに車のオブジェクトを作成したくないので、解決策ではありません。String 表現はインスタンスから独立しています。
パターンのデザインも大歓迎です。