Se connecter avec
S'enregistrer | Connectez-vous

Les differentes relation en POO

Dernière réponse : dans Etudes - Travail

bonjour a tous je suis actuellement en train d'apprendre la POO, j'en suis au chapitre sur les differents relations qu'il peut y avoir entre des classes.
J'ai un souci, je n'arrive pas a faire la difference entre la relation d'agregation et la relation de compostion car la relation de composition à la meme caracteristique que la relation d'agregation, c'est a dire relation contenant/contenu, et c'est sa qui m'embrouille lorsque je compare les 2, voila si quelqu'un peut m'aider a faire la distinction entre ces 2 relations, qu'il vienne m'aider.

PS ; je vous remercie d'avance pour les reponses que vous m'apporterez

Autres pages sur : differentes relation poo

Lassé par la pub ? Créez un compte

Meilleure solution

Je pense que la nuance entre l'agrégation et la composition est principalement philosophique, c'est assez subjectif. De mémoire, on a :

L'agrégation (losange vide) est utilisée lorsqu'il y a un couplage fort avec une relation de subordination (l'agrégat est plus important que l'élément agrégé). Si l'agrégat est détruit, l'élément agrégé peut continuer à exister seul. Si l'agrégat est copié, l'élément agrégé ne l'est pas forcément. L'élément agrégé peut aussi être partagé par plusieurs instances de classes.
Exemple : Un humain peut porter des lunettes.

La composition (losange plein) est une agrégation plus forte. Les deux éléments sont liés, de telle sorte que si l'agrégat est détruit, l'élément agrégé ne peut plus exister seul. Idem pour la copie. L'élément agrégé ne peut pas être partagé par plusieurs instances.
Exemple : Un humain est composé notamment d'une tête.

Selon le langage de programmation que tu utilises, il n'y a pas forcément d'outils pour représenter directement ces notions. C'est souvent au programmeur de s'assurer que ces relations sont maintenues.

Je sais pas si c'est plus clair, mais n'hésites pas à demander des précisions si besoin.

donc si j'ai bien compris, dans une relation d'agrégation, l'element agregé, n'a pas forcement besoin d'un element agregat pour exister, il peut etre exploité seul car independant par contre dans une relation de composition, un element agrégé de faire partie d'un element agragat pour exister/ pour etre exploité par l'intermediare de l'agregat, il depend donc de celui-ci

c'est bien sa ?

Oui je crois que c'est ça. La relation de composition est un peu plus forte ou contraignante que l'agrégation. Mais en principe c'est à toi de gérer la composition dans ton programme.

Avec mon exemple de l'humain je pense qu'on peut facilement voir la nuance entre les deux. Des lunettes peuvent très bien exister indépendamment d'un humain, elles peuvent être portées par plusieurs personnes, etc. Si l'humain est détruit, ses lunettes peuvent continuer à exister par ailleurs. Par contre si t'enlèves le corps d'un humain, sa tête n'a plus de raison d'exister seule.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde