У меня есть контейнер, который содержит несколько указателей на базовый класс, и функция, которая принимает некоторые входные данные и возвращает класс, который является подклассом базового класса. Какой подкласс он возвращает, зависит от ввода.
Прямо сейчас у меня есть гигантское заявление о переключении, подобное этому:
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:
...
}
}
Мне было интересно, есть ли лучший способ создать это. Я не знаю многих «шаблонов проектирования» (думаю, так они называются), поэтому я не знаю, есть ли (очевидный) лучший способ создать это.