Java Reference
In-Depth Information
System.out.println ("\nfuer "+ auto.gibKosten() +
" Euro\n");
}
}
Hier das Protokoll des Programmlaufs:
Limousine, Klimaanlage
fuer 36500 Euro
Limousine, Klimaanlage, Seitenairbags,
Navigationssystem
fuer 40000 Euro
Cabrio, Seitenairbags, Navigationssystem
fuer 53500 Euro
4.5.4 Bewertung
4.5.4.1 Vorteile
Die folgenden Vorteile werden gesehen:
x Eine Komponente kennt ihren Dekorierer nicht.
x Vorteilhaft ist vor allem, dass man dynamisch erweitern kann und nicht die Klasse
z. B. durch die Bildung von Unterklassen "statisch" erweitert. Zur Laufzeit des Pro-
gramms kann die zusätzliche Funktionalität des Dekorierers dynamisch hinzugefügt
und wieder entfernt werden. Wird hingegen eine Klasse statisch durch Bildung von
Unterklassen erweitert, so wird statisch zum Zeitpunkt des Kompilierens festgelegt,
von welcher Klasse das Objekt ist und somit auch, welche Funktionalität in der Klas-
senhierarchie verwendet wird.
x Es ist möglich, mehrere Klassen einer Vererbungshierarchie gleichzeitig mit einem
Dekorierer zu erweitern. Man kann sogar Klassen erweitern, die es beim Schreiben
des Dekorierers noch gar nicht gab, also neue Unterklassen der Klasse Komponen-
te .
x Ein weiterer Vorteil des Dekorierers ist die Möglichkeit, mehrere unterschiedliche
Dekorierer zu kombinieren. So kann man einen Dekorierer dekorieren, falls noch ei-
ne weitere Zusatzfunktionalität erforderlich ist. Hierbei erweitert ein Dekorierer die
Funktionalität eines anderen Dekorierers und dieser wiederum dekoriert das eigent-
lich zu erweiternde Objekt. Dieses Prinzip lässt sich quasi beliebig oft wiederholen.
Somit können beliebige Funktionalitäten von verschiedenen Dekorierern kombiniert
werden.
Search WWH ::




Custom Search