Bon, pour vous expliquer le pb, je vais vous donner un exmple. (désolé s’il est stupide mais rien que ca, j’ai eut du mal à le trouver )
J’ai des personnes, et chaque personne posséde un super appareil electronique revolutionnaire, qui, en fonction d’une goute de sang de la personne, son age, et sa couleur de cheuveux lui donne une note sur une echelle variable qui correpond a son echelle de bonheur.
(oui oui, c’est completement stupide )
Voila a koi ressemblerait ma classe en gros:
class Personne{
private age;
private groupe_sanguin;
private couleur_cheuveux;
private monBonheurTesteur;
Personne(){
monBonheurTesteur = new BonheurTesteur();
}
}
class BonheurTesteur{
private echelleLevel;
public getBonheurLevel(){
//la y a un bout de code qui, pour calculer le niveau du bonheur, a besoin de connaitre
//l'echelle dans lequelle l'appareil va donner la reponse, ainsi que l'age, le groupe
//sanguin et la couleur des cheuveux de la personne qui possede ce fantastique appareil.
}
}
Bon disons que j’instancie 2 personnes
bonhomme A
age = 30;
groupe_sanguin=A;
couleur_cheuveux=noir;
(il regle sa machine pour avoir la note représenté sur une echelle de 10)
bonhomme B
age = 20;
groupe_sanguin=O;
couleur_cheuveux=roux;¸
(il regle sa machine pour avoir la note représenté sur une echelle de 20)
Voila (enfin) ma question:
Le constructeur de personne creer l’objet BonheurTesteur.
Pour pouvoir utiliser la methode getBonheurLevel, l’objet BonheurTesteur a besoin des données qui sont contenu dans le bonhomme.
Mais vu que la l’objet BonheurTesteur se trouve DANS l’objet personne, il peut pas les lires lui meme.
Je vais donc etre obligé de: soit lui envoyé en parametre dans lors de l’apelle du constructeur, soit de carrement lui envoyé l’objet personne (ou une réference).
Et je ne trouve pas ca tres logique VU que l’objet BonheurTesteur est a l’interieur de l’objet personne!
Voila, donc j’aimerais connaitre l’avis de certains afin de connaitre qu’elle est la meilleur methode.
Un ami m’a parlé d’utiliser le design pattern Visitor. Mais comme mes connaissance ne sont pas si bonne que ca dans la matiere, apres de nombreuse recherche sur ce design pattern, je n’arrive plus a voir l’interet dans mon cas.
Merci a vous qui avez lu jusqu’au bout
Bonne journée/soirée a vous.