今月のフレーバーが、switch ステートメントと列挙型を使用して作成する具体的なクラス インスタンスを決定しているように見えるプロジェクトに取り組んでいます。
それらはすべて同じインターフェースを実装しているが、インスタンスの作成時に異なるオブジェクトパラメーターを必要とすることを考慮して、オブジェクトの作成を検討できる代替設計パターンはありますか?
たとえば、現在のコードは .
SomeInterface concreteInstance;
Switch() {
case A :
{
concreteInstance = new ConcreteAInstance(param1, param2);
}
case b :
{
concreteInstance = new ConcreteBInstance(param1, param2, param3);
}
case c :
{
concreteInstance = new ConcreteCInstance(param1);
}
}