Java Reference
In-Depth Information
der Kernobjekte zwei Rollen: der Mitarbeiter Schulze ist sowohl Entwickler als auch
Verkäufer.
4.15.4
Bewertung
4.15.4.1
Vorteile
Folgende Vorteile werden gesehen:
x Rollen können zur Laufzeit dynamisch angenommen und abgelegt werden.
x Ein Objekt kann mehrere Rollen gleichzeitig spielen.
4.15.4.2
Nachteile
Folgende Nachteile werden gesehen:
x Es ist in der Grundform des Rollenmusters etwas aufwendig, wenn man feststellen
möchte, welche Rolle ein Kernobjekt einnimmt. Dann muss man alle Rollenobjekte
daraufhin überprüfen, ob sie auf das gesuchte Kernobjekt zeigen.
x Es werden deutlich mehr Objekte erzeugt und diese müssen auch verwaltet werden.
4.15.5
Einsatzgebiete
Das Rollenmuster bietet sich immer dann an, wenn Rollen zur Laufzeit dynamisch ei-
nem rollenunabhängigen Kernobjekt zugeordnet und aberkannt werden müssen und
wo auch Kombinationen von Rollen möglich sein müssen. Durch Delegation kann das
"in Rollen Schlüpfen" elegant nachmodelliert werden.
Rollen sind ein sehr gutes Mittel zur Umsetzung des Single Responsibilty-Prinzips
(siehe Kapitel 1.3). Das Single Responsibility-Prinzip fordert, dass die Abhängigkeiten
von Klassen soweit zu reduzieren sind, dass die Methoden einer Klasse nur eine ein-
zige Aufgabe erfüllen. Weitere Verantwortlichkeiten einer Klasse können mittels des
Rollenmusters einfach als eigene Rollen ausgelagert und bei Bedarf angenommen
werden.
Für das Identifizieren von Rollen während der Systemanalyse hat M. Fowler [Fow97]
ein Rollenmuster entwickelt. In diesem Fall handelt es sich um das Analysemuster
Rolle . M. Fowler zeigt in seiner Veröffentlichung mehrere Alternativen auf, wie eine
während der Systemanalyse identifizierte Rolle in einen Entwurf umgesetzt werden
kann. Das hier vorgestellte Entwurfsmuster Rolle ist eine dieser Alternativen.
4.15.6
Ähnliche Entwurfsmuster
Im Gegensatz zum Rollenmuster ist die Spezialisierung durch Ableitung statisch
und nicht flexibel. Sie ist aber sinnvoll, wenn ein Objekt unveränderliche Ausprägun-
gen besitzt. Ist nämlich ein Objekt einer abgeleiteten Klasse erzeugt, so kann es nicht
verändert werden. Die Klassen Mann oder Frau können beispielsweise gefahrlos von
Search WWH ::




Custom Search