Was ist in einem UML-Klassendiagramm der Unterschied zwischen einer Assoziationsbeziehung und einer Abhängigkeitsbeziehung?
Soweit ich weiß, ist eine Assoziation eine stärkere Beziehung als eine Abhängigkeit, aber ich bin mir nicht sicher, wie sie stärker ist.
Jedes Beispiel wäre mehr als willkommen :)
Eine Zuordnung impliziert fast immer, dass ein Objekt das andere Objekt als Feld / Eigenschaft / Attribut hat (Terminologie unterscheidet sich).
Eine Abhängigkeit impliziert normalerweise (aber nicht immer), dass ein Objekt ein anderes Objekt als Methodenparameter akzeptiert, instanziiert oder ein anderes Objekt verwendet. Eine Abhängigkeit wird sehr stark von einer Assoziation impliziert .
quelle
In OOP-Begriffen:
Assoziation -> A hat ein C- Objekt (als Mitgliedsvariable)
Abhängigkeit -> A verweist auf B (als Methodenparameter oder Rückgabetyp)
Es gibt auch eine detailliertere Antwort .
quelle
Abhängigkeit ist wie wenn Sie eine Methode definieren, die einen String (in Java C #, da String ein Objekt in ihnen ist) als Parameter verwendet, dann ist Ihre Klasse von der String-Klasse abhängig.
Zuordnung ist wie wenn Sie eine Zeichenfolge als Attribut in Ihrer Klasse deklarieren. dann wird Ihr Code der Zeichenfolgenklasse zugeordnet.
quelle
Assoziation ist von 2 Arten-
Anhäufung
1) Zusammensetzung - stärkere Assoziation oder Beziehung zwischen 2 Objekten. Sie erstellen ein Objekt einer Klasse B in einer anderen Klasse A.
Wenn wir Klasse A löschen, existiert B nicht (B-Objekt wird nur in A erstellt).
2) Aggregation - schwächere Art der Assoziation zwischen 2 Objekten.
Selbst wenn Sie Klasse A löschen, existiert B außerhalb (B wird außerhalb erstellt und an Klasse A übergeben)
Ein weiteres Beispiel dafür - Man & Car. Der Mensch hat ein Auto, aber Mensch und Auto existieren unabhängig voneinander.
quelle
Hier: "Assoziation vs. Abhängigkeit vs. Aggregation vs. Zusammensetzung" , Sie haben ein großartiges Vade-Mecum mit Uml-Klassendiagrammen und Code-Schnipsel. Der Autor gibt uns eine Liste von Beziehungen: Assoziation, Abhängigkeit, Aggregation, Zusammensetzung an einem Ort.
quelle
Eine Abhängigkeit ist sehr allgemein und bei der Verringerung der Komplexität geht es darum, Abhängigkeiten so weit wie möglich zu verringern.
Eine Assoziation ist eine starke (statische) Abhängigkeit. Aggregation und Zusammensetzung sind noch stärker.
quelle