2013-02-28 19 views
42

Betrachten Sie die folgenden zwei Diagramme. Der obere enthält einen einfachen Pfeil am rechten Ende und der untere enthält einen Pfeil mit einem Diamanten am linken Ende und einen einfachen Pfeil am rechten Ende. Die great book GoF hat Verwendungen dieser beiden Arten von Diagrammen.Was bedeutet ein Diamantzeichen in UML-Klassendiagrammen?

Ich möchte verstehen, was hält die Diamant im zweiten Fall bedeuten, und welche dieser beiden gibt eine stärkere Assoziation zwischen Customer und Order.

Ist die Customer Klasse für den Lebenszyklus der Order Klasse in beiden Fällen verantwortlich?

enter image description here enter image description here

Antwort

62

Wenn es kein Diamant ist, dann haben wir eine einfache Zuordnung.

Wenn der Diamant leer gelassen wird, bedeutet dies, dass es sich um eine Aggregation handelt. Diese Beziehung ist stärker als eine einfache Assoziation. In diesem Fall aggregiert ein Kunde Aufträge.

Wenn der Diamant schwarz ist, bedeutet dies, dass es sich um eine Komposition handelt, die noch stärker ist als eine Aggregation, da die aggregierte Klasse nicht von anderen Klassen aggregiert werden kann. Sein "Leben" hängt vom Behälter ab.

ich denke, es ist ein wenig deutlicher erklärt, bei:

+2

+1 und nette Verbindung –

5

Es bedeutet Aggregation. Hinzufügen:

In UML ist als Hohldiamantform auf der enthaltenden Klasse Ende des Baumes mit einer einzigen Linie grafisch dargestellt, die die enthaltenen Klasse dem Aggregat enthalten class.The verbindet semantisch ein erweitertes Objekt, das in vielen Operationen als eine Einheit behandelt wird, obwohl es physikalisch aus mehreren kleineren Objekten besteht.

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

8

Der Kunde und um ein „hat - eine "Kompositionsbeziehung", wenn der Kunde aufhört zu existieren, also seine Bestellung. Daher besteht eine Lebenszyklusabhängigkeit zwischen dem Container (Kunde) und den Instanzen innerhalb dieses Containers (Reihenfolge). Wenn der Container aufhört zu existieren, tut dies auch alle seine Instanzen.

Auf der anderen Seite, wenn wir sagen, ein Kunde hat ein Buch. In diesem Fall haben wir eine "has-a" -Aggregationsbeziehung. Denn wenn der Kunde aufhört zu existieren, ist das Buch immer noch verfügbar.