web-dev-qa-db-fra.com

Que signifie un signe losange dans les diagrammes de classe UML?

Considérez les deux diagrammes ci-dessous. Celle du haut contient une flèche simple à l'extrémité droite et celle du bas, une flèche avec un diamant à l'extrémité gauche et une flèche simple à l'extrémité droite. Le grand livre GoF utilise ces deux types de diagrammes.

Je veux comprendre ce que signifie le diamant dans le second cas, et lequel de ces deux donne une association plus forte entre Customer et Order.

La classe Customer est-elle responsable du cycle de vie de la classe Order dans l'un ou l'autre cas?

enter image description hereenter image description here

58
Geek

S'il n'y a pas de diamant , alors nous avons une simple association .

Si le losange est laissé vide , cela signifie qu'il s'agit d'une agrégation . Cette relation est plus forte qu'une simple association. Dans ce cas, un client regroupe des commandes.

Si le diamant est noir , cela signifie qu'il s'agit d'une composition , qui est encore plus fort qu'une agrégation car la classe agrégée ne peut pas être agrégée par d'autres classes. Sa "vie" dépend du conteneur.

Je pense que ça s'explique un peu plus clairement, à:

89
C.Champagne

Le client et la commande sont des relations de composition "a-a" car, si le client cesse d'exister, sa commande l'est aussi. Par conséquent, il existe une dépendance de cycle de vie entre le conteneur (client) et les instances au sein de ce conteneur (commande). Lorsque le conteneur cesse d'exister, toutes ses instances font de même.

D'autre part, si nous disons qu'un client a un livre. Dans ce cas, nous avons une relation d'agrégation "has-a". Parce que si le client cesse d'exister, le livre est toujours disponible.

17
Rubens Gomes

Cela signifie l'agrégation. De wikipedia:

En UML, il est représenté graphiquement sous forme de losange creux à l'extrémité de la classe contenante de l'arbre avec une seule ligne reliant la classe contenue à la classe contenante. L'agrégat est sémantiquement un objet étendu traité comme une unité dans de nombreuses opérations. , bien que physiquement, il est composé de plusieurs objets de moindre importance.

http://en.wikipedia.org/wiki/Class_diagram

8
Mike Darmetko