Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1162 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  question de design

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

question de design

n°2013353
in_your_ph​ion
Posté le 31-07-2010 à 11:19:04  profilanswer
 

bonjour à tous,
je me pose une question de design, j'en ai jamais trop fait alors ma question est peut être débile  :pt1cable:

 

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 :

 
Code :
  1. class Objet;
  2. class A, B, C; //A,B et C dérivent de la classe Objet
  3. A a, B b, C c;
  4. a->setPrice(12);
  5. b->setPrice(40); //les methodes de A et B ont le même code
  6. c->setPrice(45); //la ça n'aurait pas de 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 :

 
Code :
  1. void A::setPrice(Price price)
  2. {
  3.   return _setPrice(price);
  4. }
 

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
mood
Publicité
Posté le 31-07-2010 à 11:19:04  profilanswer
 

n°2013355
Joel F
Real men use unique_ptr
Posté le 31-07-2010 à 11:26:28  profilanswer
 

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 :€


Message édité par Joel F le 31-07-2010 à 11:27:14

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  question de design

 

Sujets relatifs
Design Pattern Mementoune question de closeCursor ?
Question sur les autotools[struts] question bête sur action
[RESOLU] question con mais utile image en htmlQuestion CSS : position:relative;top:-40px ... et gap de 40px
Question à intégrateurs HTML/CSSQuestion de design : WebServices et rétrocompatibilité
Petite question de... design objet? 
Plus de sujets relatifs à : question de design


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR