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