Java Reference
In-Depth Information
In einer zweiten Dimension differenziert man nach Gamma [Gam95] zwischen klas-
senbasierten und objektbasierten Mustern:
x Bei klassenbasierten Entwurfsmustern werden die Beziehungen zwischen den
Objekten unter Einsatz der statischen Vererbung für die Klassen der Objekte zur
Übersetzungszeit festgelegt. Klassenbasierte Entwurfsmuster in diesem Buch sind
die Schablonenmethode, die Fabrikmethode und die klassenbasierte Variante des
Adapters. Die anderen in diesem Buch dargestellten Entwurfsmuster sind alle ob-
jektbasiert.
x Bei objektbasierten Entwurfsmustern wird oftmals auch die Vererbung einge-
setzt. Der Typ eines Objektes kann in diesem Fall aber dynamisch zur Laufzeit ge-
ändert werden. Dies erreicht man beispielsweise, indem man gegen Abstraktionen
wie Schnittstellen oder abstrakte Basisklassen programmiert. Bei Einhaltung der
Verträge einer Methode kann dann zur Laufzeit an die Stelle einer Referenz vom
Typ einer abstrakten Basisklasse bzw. eines Interface nach Liskov stets eine Refe-
renz vom Typ einer abgeleiteten Klasse treten.
Im Folgenden wird auf die Kategorisierung "objektbasiert" oder "klassenbasiert" bei
Strukturmustern, Verhaltensmustern und Erzeugungsmustern eingegangen:
x Strukturmuster werden in zwei weitere Kategorien aufgeteilt. In der ersten Unter-
kategorie befinden sich die klassenbasierten Strukturmuster, die über die Eigen-
schaft der Vererbung statisch die Klassen der betrachteten Objekte einer Struktur
gewinnen. Das einzige Beispiel in diesem Buch für ein klassenbasiertes Struktur-
muster ist der klassenbasierte Adapter. Die zweite Unterkategorie bilden die objekt-
basierten Strukturmuster. Das Proxy-Muster ist ein Beispiel für ein objektbasiertes
Strukturmuster. Ein Proxy dient hierbei als Stellvertreter für ein anderes Objekt.
Strukturmuster befassen sich mit der Zusammensetzung und
der Granularität von Klassen und Objekten.
x Auch bei Verhaltensmustern wird zwischen den klassenbasierten und den ob-
jektbasierten Verhaltensmustern unterschieden. Klassenbasierte Verhaltensmuster
verwenden Vererbung, um statisch das gewünschte Verhalten zu gewinnen. Das
einzige Beispiel in diesem Buch für klassenbasierte Verhaltensmuster ist die Scha-
blonenmethode. Objektbasierte Verhaltensmuster dagegen können beispielsweise
das liskovsche Substitutionsprinzip verwenden, um durch Austausch von Objekten
zur Laufzeit das Verhalten abzuändern. Ein Beispiel für den dynamischen Aus-
tausch des Verhaltens ist das Strategie-Muster.
Verhaltensmuster befassen sich mit den Zuständigkeiten und
der Zusammenarbeit zwischen Klassen bzw. Objekten. Sie be-
schreiben Interaktionen zwischen Objekten.
Ɣ Erzeugungsmuster verbergen die Erzeugung von Objekten in einer Operation bzw.
einer Klasse. Klassenbasierte Muster wie die Fabrikmethode verwenden Operati-
onen, deren Klasse durch Vererbung statisch gewonnen wurde. Objektbasierte Er-
Search WWH ::




Custom Search