Java Reference
In-Depth Information
Im Entwurfsmuster Rolle enthält eine Kernklasse die rollenunab-
hängige, d. h. statisch unveränderliche, Funktionalität eines Ob-
jekts. Die Rollen, die ein solches Objekt dynamisch spielen kann,
werden in Rollenklassen bzw. Rollenobjekten implementiert. Ein
Rollenobjekt aggregiert das Kernobjekt, welches diese Rolle ge-
rade spielt.
Demnach besitzt jedes Rollenobjekt eine Referenz, die auf das Kernobjekt zeigt, das
gerade diese Rolle spielt, wie das folgende Bild zeigt:
:RolleX
spielt Rolle
:Kernklasse
Bild 4-47 Objektdiagramm des Rollen-Musters
Wird eine Rolle für ein Objekt einer Kernklasse benötigt, so wird ein Objekt der Klasse
RolleX erzeugt, welches das entsprechende Objekt der Kernklasse aggregiert. Soll
ein Kernobjekt mehrere Rollen gleichzeitig annehmen, so stellt dies kein Hindernis dar.
Die Objekte der verschiedenen Rollen aggregieren einfach alle dasselbe Kernobjekt.
Soll dieselbe Rolle von einem anderen Kernobjekt übernommen werden, muss nur die
Referenz der Aggregation geändert werden, so dass sie auf das andere Kernobjekt
zeigt. Soll ein Kernobjekt eine andere Rolle annehmen, dann muss ein - gegebenen-
falls neu erzeugtes - entsprechendes Rollenobjekt dieses Kernobjekt referenzieren. Je
nach Anwendungssituation kann das alte Rollenobjekt dann ganz gelöscht werden
oder es wird nur dessen Referenz geändert und beispielsweise auf null gesetzt. Da-
mit erfüllt dieser Lösungsansatz alle in Kapitel 4.15.2 gestellten Anforderungen.
Die folgenden Bilder zeigen in Form von Objektdiagrammen die Lösung durch das Rol-
lenmuster. Zunächst werden verschiedene Mitarbeiter in derselben Rolle gezeigt:
Search WWH ::




Custom Search