Composition entre classes
Complément : Sé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 :

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.
Attention : Caracté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 :
class CTeleInter : public CTelevision {
private :
CComReseau com ; // objet permettant de communiquer par le réseau
} ;
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
.