J'ai un conteneur qui contient un tas de pointeurs vers une classe de base, et une fonction qui prend une entrée et renvoie une classe qui est une sous-classe de la classe de base. La sous-classe qu'elle renvoie dépend de l'entrée.
En ce moment, j'ai une déclaration d'interrupteur géant comme ça :
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:
...
}
}
Je me demandais s'il y avait une meilleure façon de concevoir cela. Je ne connais pas beaucoup de "modèles de conception" (je crois que c'est ainsi qu'ils s'appellent) et je ne sais donc pas s'il existe une meilleure façon (évidente) de concevoir ce projet.