Java Reference
In-Depth Information
Berufungskommission. Darüberhinaus können die Rollen wechseln wie beispielsweise
bei der Besetzung einer neuen Berufungskommission oder bei der Neuwahl des De-
kans.
Aus diesem Beispiel heraus ergibt sich die folgende Anforderung an das Rollenmuster:
Das Rollenmuster soll es erlauben, dass ein Objekt dynamisch
seine Rollen wechseln und mehrere Rollen gleichzeitig anneh-
men kann und dass mehrere Objekte die gleiche Rolle haben
können.
4.15.3
Lösung
Soll ein Objekt in Gestalt mehrerer Rollen auftreten, wird dafür eine neue logische
Ebene zwischen der Ebene der Klasse und der Ebene ihrer Instanzen benötigt, um die
verschiedenen Verhaltensaspekte ein und desselben Objekts modellieren zu können.
Eine Klasse als statischer Typ beschreibt nur eine einzige sta-
tische Rolle, die für alle Instanzen der Klasse identisch ist. Rollen
sind aber dynamisch und können von Objekten zu jeder Zeit an-
genommen und abgelegt werden. Rollen müssen daher mit Hilfe
von eigenständigen Klassen bzw. Objekten realisiert werden.
Zur besseren Unterscheidung wird im Folgenden diejenige Klasse, deren Objekte zu-
sätzliche Rollen annehmen können sollen, als Kernklasse bezeichnet. Die Klassen,
deren Objekte die zusätzlichen Rollen für die Objekte der Kernklasse darstellen sollen,
werden als Rollenklassen bezeichnet. Die erwähnte statische Rolle, die ein Objekt
bereits auf Grund seiner Zugehörigkeit zur Kernklasse spielt, wird bei diesem Muster
nicht betrachtet, sondern es geht hierbei nur um die zusätzlichen Rollen zur Rolle der
Kernklasse.
Zur Darstellung und zur Diskussion verschiedener Lösungen wird das folgende Bei-
spiel verwendet: Die Klasse Mitarbeiter sei die Kernklasse, die Klassen Verkauf ,
Entwicklung , Controlling seien Rollenklassen und maier , mueller , schulze
seien die Namen von Instanzen der Kernklasse.
Lösungsansätze ohne Rollenmuster
Die einfachste Möglichkeit, um verschiedene Rollen eines Objekts zu realisieren,
besteht darin, alle Rollenfunktionen in die Kernklasse zu integrieren . Im Beispiel
müsste die Klasse Mitarbeiter um die Funktionen der Rollen Verkauf , Entwick-
lung und Controlling statisch erweitert werden. Ob ein Objekt eine bestimmte Rol-
le spielt, könnte beispielsweise über eine boolesche Variable dargestellt werden. Sind
verschiedene booleschen Variablen gleichzeitig gesetzt, würde das bedeuten, dass
das Objekt die entsprechenden Rollen gleichzeitig spielt. Ab einer gewissen Anzahl
Search WWH ::




Custom Search