Bonjour à tous,
J'ai actuellement un souci de conception. Je n'en suis pas sur, mais mon design à l'air foireux, et je n'arrive pas a savoir pourquoi (du coup, encore moins comment le résoudre).
Globalement, une class client demande à un objet:
1 - Des renseignement quant à sa position géographique;
2 - Des renseignement concernant sa composition materiel.
Soit, le client est roi. Temporairement, j'avais :
Conscient du problème que cela posait (double resposabilité). Maintenant, je voudrais résoudre se problème... Mais voilà qu'une contrainte s'ajoute : un objet n'est plus définie comme avec un materiel unique. Selon les données retourné par renseignementGeo, je doit avoir différent retour de renseignement materiel. De plus, cela dépend aussi de la vrai (comprendre au sens polymorphique) nature de l'objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class objet { private: materiel * mat; data autreData; public: quelconque renseignementGéographique1(); quelconque renseignementGéographique2(); const materiel & reseignementMateriel(); private: virtual quelconque vRenseignementGeo1() =0; virtual quelconque vRenseignementGeo2() =0; }
Le truc le plus "convaincant" qui est réussi à jaillir de mon esprit, c'est un truc du genre :
Mais je dois dire que ça ne me convainc pas. Et, même si c'est tout bête (d'ailleurs ça l'est surement), je n'arrive pas à savoir pourquoi ça me dérange .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class objet { private: data autreData; protected texture * tex; public: quelconque renseignementGéographique1(); quelconque renseignementGéographique2(); const materiel & reseignementMateriel(); private: virtual quelconque vRenseignementGeo1() =0; virtual quelconque vRenseignementGeo2() =0; const materiel & vRenseignementMat() = 0; }
Si quelqu'un à une idée, merci pour l'aide >< !
Partager