Java Reference
In-Depth Information
Auf Grund dieses Vorteils wird im Programmbeispiel in Kapitel 4.5.3.5 mit dieser Lö-
sungsvariante gearbeitet.
4.5.3.2 Teilnehmer
Komponente
Mit Komponente ist die Basisklasse der Klassen derjenigen Objekte bezeichnet,
welche um die Zusatzfunktionalität erweitert werden sollen. Die Komponente selbst
wird nicht verändert.
Dekorierer
Die Klasse Dekorierer leitet von der Klasse Komponente ab und damit kann bei
Einhaltung der Verträge nach dem liskovschen Substitutionsprinzip eine Referenz auf
ein Objekt der Klasse Dekorierer an die Stelle einer Referenz auf die Klasse Kom-
ponente treten. Die Klasse Dekorierer aggregiert ein Objekt der Klasse Kom-
ponente und kann damit auf dieses Objekt bzw. auf ein Objekt einer von der Klasse
Komponente abgeleiteten Klasse zugreifen. Der Dekorierer überschreibt alle geerbten
Methoden und leitet die Aufrufe per Delegation an das aggregierte Objekt weiter. Die
zusätzliche Funktionalität wird in den überschreibenden Methoden vor oder nach bzw.
vor und nach dem Aufruf der jeweils überschriebenen Methode untergebracht.
Konkrete Komponenten
Diese Elemente sind Subklassen der Klasse Komponente . Wegen der Aggregations-
beziehung zwischen den Klassen Dekorierer und Komponente und infolge des lis-
kovschen Substitutionsprinzips können alle Subklassen der Klasse Komponente
"gleichzeitig" durch die Klasse Dekorierer erweitert werden.
4.5.3.3 DynamischesVerhalten
Der Client ruft eine Methode des Dekorierers auf. Der Aufruf wird zum einen an das
aggregierte Objekt der Klasse Komponente weitergeleitet. Diese Methode wird dann
von dem aggregierten Objekt der Klasse Komponente abgearbeitet. Das Objekt der
Klasse Komponente gibt das Ergebnis über das Objekt der Klasse Dekorierer an
das Client-Programm zurück. Enthält die überschreibende Methode zum anderen eine
Zusatzfunktion des Dekorierers, so führt der Dekorierer vor oder nach bzw. vor und
nach der Delegation des Methodenaufrufs diesen zusätzlichen Code selbst aus. Das
folgende Bild visualisiert den Ablauf für die Dekoration einer Komponente:
Search WWH ::




Custom Search