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

  FORUM HardWare.fr
  Programmation
  C++

  [cpp] conception sans friend

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[cpp] conception sans friend

n°1955751
toonj
Posté le 07-01-2010 à 11:34:31  profilanswer
 


Bonjour,
 
Je voudrais faire une classe dont les données internes (et privées) serait modifiable suivant différentes stratégie (c'est d'ailleurs le nom du design Pattern)
Existe t'il une conception élegante pour ne pas utiliser friend ?
 
Voila ce à quoi j'avais pensé avec friend:
 

Code :
  1. class Object
  2. {
  3. friend IStrategie;
  4. int _data1;
  5. double _data2;
  6. //...  
  7. IStrategy *_strategy;
  8. void execute(){_strategy->execute(*this);}
  9. };
  10. class IStrategy
  11. {
  12. public:
  13. void execute(Object  & obj)=0;
  14. };
  15. class Strategy1 : public IStrategy
  16. {
  17. public:
  18. void execute(Object  & obj){obj._data1 = 2; /*ou tout autre valeur suivant algo*/}
  19. };
  20. class Strategy2 : public IStrategy
  21. {
  22. public:
  23. void execute(Object  & obj){obj._data2 = 1.23; /*ou tout autre valeur suivant algo*/}
  24. };


 
Probleme : this (et donc *this) est const et donc je ne peux pas le modifier ? faire un const_cast ??
Je dois déclare comme friend, IStrategy mais aussi Strategy1, Strategy2, ... et ce n'est pas l'idéal car je ne connais pas encore toute mes strategies...
Passer la/les valeurs modifier en retour/paramètres n'est pas envisageable non plus (je ne connais pas exactement le nombre de paramètres, ce n'est pas les mêmes utilisés par chaque stratégie...
 
Des solutions ? Des idées ?

mood
Publicité
Posté le 07-01-2010 à 11:34:31  profilanswer
 

n°1955785
Joel F
Real men use unique_ptr
Posté le 07-01-2010 à 14:10:58  profilanswer
 

fait des accesseurs pr les membres  modifiables de ta classe objet.

n°1955813
theshockwa​ve
I work at a firm named Koslow
Posté le 07-01-2010 à 15:02:22  profilanswer
 

sinon, tu peux avoir une interface privée à ton objet et lui attacher les stratégie (avec interface commune, donc), opération au cours de laquelle cet objet transmetun pointeur sur son interface privée à la stratégie ?


---------------
last.fm

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

  [cpp] conception sans friend

 

Sujets relatifs
Probleme de conception réseau[MCD] problème de conception : livraisons et colis
Class Template + FriendProblème de conception ?
[Résolu] warning friend declaration[Php/OpenLaszlo] conception de site/ transmission client/serveur
[Ada] [Conception] Un compositeur interprète avec Ada.Aide conception MCD et MLD
maniere de conception d'un siteProblème conception objet pour modeleur UML en GWT
Plus de sujets relatifs à : [cpp] conception sans friend


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