J'ai une classe de base qui sous-classes dérivées héritent, il porte les fonctions de base qui devraient être les mêmes dans toutes les classes dérivées:Modèle de conception pour les fonctions optionnelles?
class Basic {
public:
Run() {
int input = something->getsomething();
switch(input)
{
/* Basic functionality */
case 1:
doA();
break;
case 2:
doB();
break;
case 5:
Foo();
break;
}
}
};
Maintenant, en fonction de la classe dérivée, je veux « ajouter » plus déclarations de cas au commutateur. Quelles sont mes options ici? Je peux déclarer des fonctions virtuelles et ne les définir dans les classes dérivées qui vont les utiliser:
class Basic {
protected:
virtual void DoSomethingElse();
public:
Run() {
int input = something->getsomething();
switch(input)
{
/* Basic functionality */
...
case 6:
DoSomethingElse();
}
}
};
class Derived : public Basic {
protected:
void DoSomethingElse() { ... }
}
Mais cela signifierait lors du changement des fonctions dans une classe dérivée, je dois modifier ma classe de base pour refléter les changements.
Existe-t-il un modèle de conception spécifique à ce type de problème? J'ai acheté un certain nombre de livres sur Design Patterns, mais je les étudie sur la base des besoins, donc je ne sais pas s'il y a un tel modèle que je cherche.
Je pense que je vais aller pour le modèle de méthode de modèle pour l'instant. Je vais certainement lire et considérer les autres modèles listés ici, mais pour l'instant ceci peut être marqué comme accepté :) –