Ich bin verwirrt über einige der Notationen von UML-Klassendiagrammen.
Ich bin mir ziemlich sicher, was Assoziation bedeutet. Jede Beziehung zwischen Instanzen von zwei Klassen, bei der eine Instanz einer Klasse über eine Instanz der zweiten Klasse Bescheid wissen muss, um ihre Arbeit auszuführen, ist eine Assoziationsbeziehung. Eine Assoziation bedeutet oft, dass Klasse A einen Verweis (Feld) auf eine Instanz der Klasse B hat.
Ich habe jedoch Probleme zu verstehen, was die Aggregations- und Kompositionspfeile bedeuten. Ein Teil meiner Verwirrung wurde dadurch verursacht, dass ich auf unterschiedliche Definitionen dieser Notationen gestoßen bin.
Zwei Definitionen der Aggregationsnotation :
Definition 1: Eine Aggregationsnotation zwischen zwei Klassen ist immer dann geeignet, wenn eine Instanz der Klasse A eine Sammlung von Instanzen der Klasse B enthält (z. B. eine Liste, ein Array oder was auch immer).
Definition 2: Eine Aggregationsverbindung zwischen zwei Klassen ist geeignet, wenn eine Instanz von Klasse A einen Verweis auf eine Instanz von Klasse B enthält und die B-Instanz vom Lebenszyklus der A-Instanz abhängig ist. Bedeutung: Wenn die Instanz von Klasse A gelöscht wird, wird auch die Instanz von Klasse B gelöscht. Die Instanz von Klasse B ist vollständig in der Instanz von Klasse A enthalten, im Gegensatz zu der Instanz von Klasse A, die lediglich einen Verweis auf die Instanz von besitzt Klasse B (die reguläre Vereinigung ist).
Ich bin mir nicht sicher, was die Kompositionsnotation bedeutet und wie sie sich von der Aggregationsnotation unterscheidet.
Bitte klären Sie die Definitionen und helfen Sie mir zu verstehen. Konkrete Beispiele wären willkommen.