基本クラスへの一連のポインターを保持するコンテナーと、入力を受け取り、基本クラスのサブクラスであるクラスを返す関数があります。どのサブクラスを返すかは、入力によって異なります。
現在、次のような巨大なswitchステートメントがあります。
class Base { ... }
class A : public Base { ... }
class B : public Base { ... }
...
class Z : public Base { ... }
Base* depends(int input) {
switch (input) {
case 1:
return new A(...);
case 2:
return new B(...);
...
case 26:
return new Z(...);
default:
...
}
}
これを設計するためのより良い方法があるかどうか疑問に思いました。私は多くの「デザインパターン」を知らないので(それが彼らの名前だと思います)、これをデザインするための(明らかな)より良い方法があるかどうかはわかりません。