Agrégation et Composition, c’est quoi ? 8

Quelle est la différence

La composition peut être vue comme une relation “fait partie de” (“part of”), c’est à dire que si un objet B fait partie d’un objet A alors B ne peut pas exister sans A. Ainsi si A disparaît alors B également.

L’agrégation quant à elle est vue comme une relation de type “a un” (“has a”), c’est à dire que si un objet A a un objet B alors B peut vivre sans A.

Le plus simple pour comprendre la différence entre ces deux notions restent un exemple concret.

Exemple C#

Prenons un système simplissime de gestion des employés dont voici le code :

  public class Employe
    {
        // Agrégation
        private Projet ProjetCourant;
        // Composition - On crée une instance de salaire
        // à l'intérieur de notre objet Employe
        private Salaire salaire = new Salaire();

        // Le projet sur lequel travaille de salarié
        // est passé en paramètre du constructeur
        public Employe(Projet projet, int salaire)
        {
            this.salaire.Annuel = salaire;
            this.ProjetCourant = projet;
        }
    }

    public class Salaire
    {
        public int Annuel { get; set; }
    }

    public class Projet
    {
        public string Nom { get; set; }
    }

La classe Employe possède deux attributs : Salaire et ProjetCourant. L’instance de Salaire fait partie de l’instance d’employé, si on supprime l’employé alors son salaire aussi est supprimé, c’est une relation de composition. En revanche l’employé a un projet courant. Si l’utilisateur part de l’entreprise le projet perdurera, c’est une relation d’agrégation.

Représentation UML

En UML la représentation d’une relation de composition est faite avec un losange plein. La représentation d’une relation d’agrégation est elle représentée par un losange vide.

Agrégation et composition

8 thoughts on “Agrégation et Composition, c’est quoi ?

  1. Reply didaRatsimba Oct 10,2016 21:04

    je pense que “has a” est plus approprié que “as a” 🙂

  2. Reply sauron Nov 28,2016 17:13

    Très bonne explication, à la fois simple et detaillé

  3. Reply Thibaud Dec 1,2016 19:47

    Merci pour ces explications.

  4. Reply YssineTounsiTns Jan 7,2017 21:29

    détaillé et trés claire

  5. Reply lamine Jan 17,2017 17:52

    bsr, et dans une composition une occurence du composant appartient à une et une seule occurence de l’agrégat

  6. Reply ADEL DJIDJIK Jan 21,2017 20:30

    merci , c’etait tres clair

  7. Reply Fred Aug 1,2017 14:03

    Bien expliqué, et avec une orthographe excellente (ce quio est très rare).
    Merci

Leave a Reply