J'ai une classe CGrandMother
ayant une méthode publique virtual bool Compute()
cela nemeilleure façon de Refactor Hiérarchie des classes
virtual bool Compute()
{
return false;
}
De CGrandMother
publiquement CMother
qui dérive ne met pas en œuvre Compute
. Maintenant de CMother
dérivez publiquement C1
et C2
qui implémentent virtual bool Compute()
. Maintenant, virtual bool C1::Compute()
et virtual bool C2::Compute()
respectivement faire beaucoup de choses propres à respectivement C1
et C2
, mais aussi beaucoup de choses identiques à CMother
. Maintenant, il y a une classe CFamily
ayant en tant que membre d'un pointeur vers CMother
et presque partout dans le code Compute
est appelé par les lignes de la forme
ptrCMother->Compute();
Comment pourrais-je factoriser les choses communes liées à CMother
fait dans C1
et C2
donc que je n'aurais pas à changer toutes ces lignes ptrCMother->Compute();
?
Je ne suis pas sûr que ce soit une bonne pratique, mais pourriez-vous déplacer le code commun vers 'CMother :: Compute' et ensuite appeler manuellement' CMother :: Compute() 'en haut de' C1' et 'C2 '? – 0x5453