Dies ist eine alte Version des Dokuments!
LU09b - Zweiseitige Mehrfachbeziehung (n zu n)
Aus der realen Welt sind Mehrfachbeziehungen bestens bekannt. So kann eine Feriendestination von vielen Personen gebucht werden und umgekehrt kann eine Person viele Destinationen besuchen.
Diese Beziehung wird wie folgt im UML-Klassendiagramm dargestellt.
Abb: n:n Beziehung
Bei einer zweiseitigen Mehrfachbeziehung enthält jedes Objekt eine Liste mit Referenzen zu den verbundenen Objekten.
Beim Hinzufügen (add
) und Löschen (remove
) von Beziehungen, müssen Sie immer beide Listen anpassen.
Dabei muss verhindert werden, dass ein Endlos-Loop entsteht, wenn sie die add_person
und add_destination
-Methoden gegenseitig aufrufen.
Umsetzung in Python
Für unsere Umsetzung prüfen wir zuerst, ob das Objekt in der Liste vorhanden ist. Nur wenn dies der Fall ist, wird die Beziehung hinzugefügt bzw. gelöscht.