Fachkonzept - Beziehung

Wie verwaltet man Beziehungen?

ZufI

Unter den vielen Beziehungen zwischen Objekten in unserer Lebenswelt spielt die kennt-Beziehung eine wichtige Rolle. Ein Objekt Peter kann einem Objekt Anna nur dann eine SMS mir einer Einladung zu einem Treffen schicken, wenn das Objekt Peter das Objekt Anna kennt (genauer: die Telefonnummer des Objekts Anna).

Ähnlich verhält es sich in der Welt der Software-Objekte. Ein Software-Objekt kann nur dann ein anderes Software-Objekts veranlassen, eine Methode auszuführen, wenn es dieses andere Software-Objekt kennt (genauer: die Speicheradresse des anderen Software-Objekts).

Um ein solches In-Beziehung-Setzen von Software-Objekte zu realisieren, werden bestimmte Software-Objekte mit Attributen versehen, mit deren Hilfe sie Referenzen auf "Beziehungspartner" verwalten können.

Fachkonzept - Beziehung

Wir betrachten Konto-Objekte zur Verwaltung von Kontodaten und Kunde-Objekte zur Verwaltung von Kundendaten.

Um den Inhaber eines Kontos im Objektmodell zu erfassen, können Konto-Objekte ein sogenanntes Referenzattribut vorsehen.

Objektdiagramm

Ein Konto-Objekt verfügt also über ein Attribut, dessen Wert eine Referenz bzw. ein Zeiger auf ein Kunde-Objekt ist. Zur Erinnerung: Die Referenz bzw. der Zeiger ist nichts anderes als die Adresse, unter der das Objekt im Speicher zu finden ist.

Mit Hilfe eines Aufrufs wie z.B. konto1.inhaber kann das Konto-Objekt konto1 jetzt auf Daten des zugeordneten Kunde-Objekts zugreifen, z.B. mit konto1.inhaber.name auf das entsprechende Attribut. Das Konto-Objekt konto1 hat somit Zugriff auf ein Kunde-Objekt, z.B. kunde2. Man sagt auch, dass das Konto-Objekt konto1 in Beziehung zum Kunde-Objekt kunde2 steht.

Verallgemeinernd lässt sich das Beziehungskonzept so beschreiben:

Wenn ein Objekt über einen Zeiger (eine Referenz) Zugriff auf ein anderes Objekt hat, so liegt eine (gerichtete) Beziehung zwischen den Objekten vor.

Um zu verdeutlichen, dass Objekte einer Klasse in Beziehung zu Objekten einer anderen Klasse stehen, wird im Klassendiagramm diese Beziehung durch einen Pfeil verdeutlicht. Die Beziehung kann - wie im folgenden Diagramm zu sehen - zusätzlich mit einem Bezeichner genauer beschrieben werden.

Klassendiagramm

Beziehungsmuster

Im Folgenden werden einige Möglichkeiten aufgezeigt, wie Objekte miteinander in Beziehung stehen können.

Muster: Objekt der Klasse A kennt Objekt der Klasse B

Objektdiagramm:

Objektdiagramm

Klassendiagramm:

Klassendiagramm

Muster: Objekt der Klasse A kennt Objekt der Klasse B und umgekehrt

Objektdiagramm:

Objektdiagramm

Klassendiagramm:

Klassendiagramm

Muster: Objekt der Klasse A kennt mehrere Objekte der Klasse B

Objektdiagramm:

Objektdiagramm

Klassendiagramm:

Klassendiagramm

Beachte im letzten Muster die zusätzlichen Angaben im Klassendiagramm. Mit der Eins und dem Stern am Pfeil wird hier beschrieben, dass 1 Objekt der Klasse A * (d. h. mehrere) Objekte der Klasse B kennt.

Objekt erzeugt Objekt

Eine besondere Form der Beziehung liegt vor, wenn ein Objekt ein anderes erzeugt (und wieder vernichtet) und somit die Kontrolle über die Existenz des verwalteten Objekts hat.

Wenn beispielsweise das Objekt a eine Methode ausführt, innerhalb derer ein Aufruf zur Erzeugung eines Objekts b vorkommt, so liegt die im Objektdiagramm gezeigte Situation vor:

Objektdiagramm

Im Klassendiagramm wird diese Form der Abhängigkeit wie folgt beschrieben:

Klassendiagramm

Kennt- und hat-Beziehung

Man unterscheidet zwischen einer kennt-Beziehung, bei der die beteiligten Objekte ein Eigenleben führen, und einer hat-Beziehung, bei der ein Objekt auch für die Erzeugung (und Vernichtung) des anderen Objekts zuständig ist.

X

Fehler melden

X

Suche