我有一个抽象类,其中包含一系列抽象事物:
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 允许这样做吗?我可以更好地重新设计它吗?