抽象的なものの配列を持つ抽象クラスがあります。
Abstract Color has abstract ColorThings[]
それぞれが具体的なものの配列を持ついくつかの具体的なクラスがあります。
Concrete RedColor has concrete RedThings[]
Concrete BlueColor has concrete BlueThings[]
すべてが関連しています:
RedColor and BlueColor are Colors.
RedThings[] and BlueThings[] are ColorThings[].
ここで必要な設計パターンは何ですか? 私は既にファクトリ メソッドを実行しています。このメソッドでは、Color サブクラスが適切な ColorThing を生成できる必要があります。ただし、サブクラスが実装する必要のない Color でこのメソッドを使用できるようにしたいとも考えています。
addColorThing(ColorThing thing) {/*ColorThing[] gets RedThing or BlueThing*/}
さらに、各サブクラスが独自のバージョンの配列として super.ColorThings[] をインスタンス化できるようにしたいと考えています。
class RedColor {
colorThings[] = new RedThings[];
}
Javaはこれを許可しますか? より良いものを再設計できますか?