Composition entre classes

ComplémentSémantique

Les parties suivantes demande de comprendre des notions à forte sémantique.

La sémantique correspond à la valeur des mots.

Vous verrez qu'il est possible de vouloir exprimer deux pensées différentes sur un diagramme UML/SysML alors que le codage en C++ est le même.

Le diagramme permet de mettre en évidence une sémantique différente.

La relation de composition

Pour bien comprendre ce concept, la relation de composition entre deux classes peut être remplacé par "est composé de" ou "contient comme partie".

En UML/SysML, la représentation est la suivante :

Composition
Composition

CTelevision est composé de CTnt.

CTelevision est nommé l'agrégat tandis que CTnt est un des composants de l'agrégat.

Mémorisez le sens de tous ces mots pour les assimiler.

Le losange foncé est côté agrégat.

La flèche pointe sur le composant.

Il est possible de rajouter une cardinalité ou multiplicité côté composant. Côté agrégat, c'est toujours 1.

AttentionCaractéristique de la composition

Si l'agrégat est détruit, les composants le sont aussi.

La multiplicité est de 1 côté agrégat.

Le codage en C++ d'une composition est la suivante :

1
class CTeleInter : public CTelevision {
2
   private :
3
    CComReseau com ; // objet permettant de communiquer par le réseau
4
} ;

Nous avons déjà examiné ce code dans le cadre de l'héritage.

La déclaration de l'objet com est statique, dans la même zone mémoire que celle de l'objet instance de CTeleInter.