MazdaX a écrit :
J'ai une question de conception :
Quand choisir une agrégation (losange vide) au lieu d'une association ?
Je n'arrive pas à saisir la subtilité entre les 2 ...
|
_ Agrégation (losange vide) : la classe a de simple références vers une autre classe A -> B, si on détruit l'instance A alors l'instance B existe toujours mais risque d'être orpheline (zombie, existante mais plus utilisée par personne, donc "morte" mais pas au courant par contrôlée par une autre).
_ Composition (losange plein) : la classe contient complètement une autre classe (classe interne), si on détruit l'instance A alors l'instance B est détruite aussi.
En gros pour le choix d'aggrégation contre composition, si c'est une voiture composée (entre autres) de roues qui crame un soir de nouvel an tout ce qui la compose doit être détruit aussi, mais si c'est un immeuble insalubre qui saute ses habitants ne doivent pas sauter avec (si possible :-( ). Donc pour moi pour une relation A -> B donnée, si la destruction de A doit amener celle de B c'est une composition, sinon une aggrégation.