Java Reference
In-Depth Information
KernKlasse
Die Klasse
KernKlasse
repräsentiert die rollenunabhängigen Eigenschaften von Ob-
jekten. Eine Instanz dieser Klasse ist ein Objekt, das die Rollen
RolleX
annehmen
kann. Spielt ein Kernobjekt eine bestimmte Rolle, dann wird es von einem entspre-
chenden Rollenobjekt referenziert.
4.15.3.3
Dynamisches Verhalten
Das folgende Sequenzdiagramm zeigt, wie eine Anwendung - hier durch ein Objekt
der Klasse
Client
repräsentiert - sowohl Rollenoperationen ausführen als auch rol-
lenunabhängige Kernfunktionen bei dem referenzierten Kernobjekt aufrufen kann:
:Client
:RolleX
:KernKlasse
operationX()
operationX() : result
getKernObjekt()
getKernObjekt() :
objekt
kernFunktion()
kernFunktion() : result
Bild 4-52 Sequenzdiagramm für eine Rollenoperation und eine Kernfunktion
Dem Client ist anfangs nur das Rollenobjekt bekannt. Rollenspezifische Operationen
wie beispielsweise
operationX()
können daher vom Client direkt aufgerufen werden
und werden von der Instanz der Klasse
RolleX
beantwortet. Aufrufe von Kern-
funktionen kann der Client dadurch bewerkstelligen, dass er sich zuerst mit Hilfe der
Methode
getKernObjekt()
eine Referenz auf das Kernobjekt besorgt, das diese
Rolle gerade spielt. Über diese Referenz kann dann eine Methode des Kernobjekts
wie beispielsweise
kernFunktion()
aufgerufen werden.
4.15.3.4
Programmbeispiel
In dem folgenden Beispiel wird die in Kapitel 4.15.3 vorgestellte Grundform des Mus-
ters implementiert. Das bedeutet, dass ein Rollenobjekt den Zugriff auf das aggregierte
Kernobjekt über eine get-Methode ermöglicht.
Das Programm greift das bisher schon benutzte Beispiel auf und realisiert einen klei-
nen Ausschnitt einer Unternehmensverwaltung. Die Klasse
Mitarbeiter
ist in die-
sem Beipiel die Kernklasse. Die Kernklasse hat im Rahmen des Entwurfsmusters Rol-
le nur eine untergeordnete Bedeutung. Die Klasse
Mitarbeiter
ist daher im Beispiel
einfach und übersichtlich gehalten. Von der Kernklasse
Mitarbeiter
gibt es die In-
stanzen
maier
und
schulze
. Diese können in den Abteilungen Entwicklung und Ver-
kauf arbeiten. Der Mitarbeiter
schulze
erhält Aufgaben in beiden Abteilungen und
nimmt somit zwei Rollen gleichzeitig an.
Search WWH ::
Custom Search