PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : UML Implementierungsunterschied bei Assoziation


chetigol
2017-11-27, 10:59:28
Ich hab eine Frage zum Verständnis der Implementierung einer in UML modellierten gerichteten und einer ungerichteten Assoziation.

http://fs1.directupload.net/images/171127/jkup3c2c.jpg (http://www.directupload.net)

Diese bidirektional gerichtete Assoziation ist relative einfach, beide Klassen halten eine Referenz auf die andere Klasse. Würde also als Code folgendermaßen ausschauen:

class Parent
{
private ArrayList<Child> kind;

public Parent()
{
}
};

class Child
{
private Parent elternteil[2];

public Child()
{
}
};


Wie würde aber folgendes Klassenmodell implementiert werden?

http://fs5.directupload.net/images/171127/ojcjtknk.jpg (http://www.directupload.net)

Impliziert die Rollenangabe an beiden Assoziationsenden und die Angabe der Multiplizität nicht indirekt eine bidirektional gerichtete Assoziation?
Ich würde dieses Klassendiagramm jedenfalls genau gleich wie das obere implementieren.

Oder versteh ich da etwas falsch? was gibt der Richtungspfeil dann an, wenn nicht das halten einer Referenz auf das Objekt der assozierten Klasse?

Mosher
2017-11-28, 04:49:06
Nach meinem Verständnis schränkt dich die ungerichtete Assoziation zunächst nicht in der Implementierung ein, d.h. es spricht nichts dagegen, beide Modelle gleich umzusetzen.

Da eine beidseitige Multiplizität vorliegt, hast du imho auch garkeine andere Wahl, als eine beidseitig gerichtete Assoziation anzunehmen und entsprechend umzusetzen.

chetigol
2017-11-28, 07:39:48
passt, danke für die Antwort. Das hab ich mir auch schon gedacht, war mir aber nicht sicher.