s n h m r u
i

Fachkonzept - Beziehungen

Wie entstehen Verbindungen zwischen Objekten?

Ein Objekt kann ein anderes Objekt nur dann steuern – also dessen Methoden aufrufen oder dessen Attribute lesen –, wenn es eine Verbindung zu ihm hat. Eine solche Verbindung wird über eine Referenz hergestellt: Das eine Objekt speichert in einem Attribut eine Referenz auf das andere Objekt.

Referenzattribute

Wir betrachten ein Spiel-Objekt, das zwei Figur-Objekte steuern soll. Damit das gelingt, erhält das Spiel Referenzattribute, in denen es die Referenzen auf die Figuren verwaltet.

Objektdiagramm: Spiel verweist auf zwei Figuren

Über die Attribute f1 und f2 kann das Spiel-Objekt auf die Methoden und Attribute der Figuren zugreifen. Die Klasse könnte so aussehen:

class Spiel {
    val f1 = Figur("blau", 0, 0)
    val f2 = Figur("rot", 4, 4)

    fun nachObenBewegen() {
        f1.gehe(0)
        f2.gehe(0)
        println("Blau steht bei ${f1.x}, ${f1.y}")
        println("Rot steht bei ${f2.x}, ${f2.y}")
    }
}

Beziehungen zwischen Objekten

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

Dass Objekte einer Klasse in Beziehung zu Objekten einer anderen Klasse stehen, drückt man im Klassendiagramm durch einen Pfeil aus. Die Beschriftung am Pfeilende gibt an, wie die Referenzattribute heißen.

kennt-Beziehung und hat-Beziehung

Man unterscheidet zwei Arten von Beziehungen. Im einen Fall kennt ein Objekt ein anderes; beide existieren unabhängig voneinander. Im anderen Fall hat ein Objekt ein anderes als Bestandteil und ist meist auch für dessen Erzeugung zuständig.

Bei einer kennt-Beziehung (Assoziation) führen die beteiligten Objekte ein Eigenleben. Bei einer hat-Beziehung (Komposition) ist ein Objekt auch für die Erzeugung des in Beziehung stehenden Objekts zuständig; es ist ein Bestandteil.

Im Klassendiagramm wird die kennt-Beziehung durch einen einfachen Pfeil dargestellt, die hat-Beziehung zusätzlich durch eine ausgefüllte Raute auf der Seite des besitzenden Objekts:

Klassendiagramm mit kennt- und hat-Beziehung

Im Go-Home-Beispiel erzeugt das Spiel die Figuren f1 und f2 selbst – das spricht für eine hat-Beziehung. Die aktuell zu bewegenden Figuren werden dagegen nicht neu erzeugt, sondern verweisen auf bereits vorhandene Figuren – das ist eine kennt-Beziehung.

Ob eine Beziehung als kennt- oder hat-Beziehung aufzufassen ist, lässt sich nicht immer eindeutig entscheiden. Eine hat-Beziehung ist eine besondere Form der kennt-Beziehung. Man darf eine hat-Beziehung also auch als kennt-Beziehung darstellen; das Klassendiagramm verliert dann nur etwas an Aussagekraft. Übrigens: Die hat-Beziehung ist nicht mit dem umgangssprachlichen „haben" zu verwechseln – ein Kind „hat" einen Ball, ohne ihn erzeugt zu haben.

Suche

v
100.123.5.4 Fachkonzept - Beziehungen
Kopieren durch Anklicken

Rückmeldung geben