question de design - C++ - Programmation
Marsh Posté le 31-07-2010 à 11:26:28
arrete d'heriter de Object surtout, tu viole salement le Principe de Substitution de Liskov:
http://cpp.developpez.com/faq/cpp/ [...] ritage_lsp
http://en.wikipedia.org/wiki/Lisko [...] _principle
http://fr.wikipedia.org/wiki/Princ [...] _de_Liskov
si c->setPrice n'a pas de sens, C ne devrait pas exposer cette méthode.
Revoit ta hiérarchie de classe.
Y a que moi qui enseigne ça à la Fac ou bien ? C'ets le niveau 1 de l'OOP quoi :€
Marsh Posté le 31-07-2010 à 11:19:04
bonjour à tous,
je me pose une question de design, j'en ai jamais trop fait alors ma question est peut être débile
Toujours est il, j'ai plusieurs classes qui peuvent mettre à jours des types particuliers (du style price, memo ... comme int et double sont des types). De plus, j'ai plusieurs classes qui peuvent mettre à jours ces types, mais pour d'autres ça n'a aucun sens de le faire :
j'ai pensé mettre la méthode virtuelle setPrice() dans la classe Objet mais du coup un objet de type C pourrait s'en servir.
Ou sinon un truc - peut être crado - du style je fais une methode _setPrice() en protected, dans Objet, qui contient le code, et une autre public "virtual setPrice()" qui ne fait rien. Et la classe qui dérive et veut ré-implémenter fera un truc du style :
mais c'est bof, non ?
En fait, je voudrait faire de l'héritage "sélectif" ... ce serait quoi la meilleure manière de faire ? et la plus simple.
merci!
Message édité par in_your_phion le 31-07-2010 à 11:23:59