Java Reference
In-Depth Information
4.22 Zusammenfassung
Entwurfsmuster sind bewährte Ansätze für die Lösung bestimmter Probleme beim
Entwurf. Praktisch alle Entwurfsmuster ermöglichen mit ihrem Lösungsansatz eine
gewisse Erweiterbarkeit und damit eine Wiederverwendbarkeit. Darüber hinaus bieten
diese Lösungsansätze eine größere Flexibilität, beispielsweise dadurch, dass Imple-
mentierungsentscheidungen auf Unterklassen verschoben oder in Objekten gekapselt
werden, womit die Entscheidungen austauschbar werden. Die genannten Vorteile wer-
den allerdings mit Aufwand, d. h. Zeitverbrauch und Speicherbedarf, erkauft. Beim Ein-
satz eines Entwurfsmusters muss man stets prüfen, ob für die Erweiterbarkeit oder die
Flexibilität überhaupt Bedarf besteht.
Jedes der Muster ist für eine ganz bestimmte Problemstellung anwendbar. Die Kunst
besteht deshalb in der Eingrenzung des Problems. Diese Eingrenzung erlaubt es, zwi-
schen ähnlichen Entwurfsmustern die richtige Wahl zu treffen.
Man kann nach [Gam95] bei den Entwurfsmustern nach den Klassen Strukturmuster,
Verhaltensmuster und Erzeugungsmuster unterscheiden.
Entwurfsmuster können ferner in zwei weitere Kategorien eingeteilt werden: klassen-
basierte und objektbasierte Muster . Bei klassenbasierten Entwurfsmustern wird das
Muster zur Kompilierzeit festgelegt. Die klassenbasierten Muster verwenden hierbei
die statische Bildung von Unterklassen. Bei objektbasierten Mustern können Objekte
zur Laufzeit oft ausgetauscht werden. Die Bildung von Objekten von Unterklassen
erfolgt hierbei dynamisch zur Laufzeit. Der allergrößte Teil der vorgestellten Entwurfs-
muster ist objektbasiert. Lediglich die hier vorgestellten Muster Schablonenmethode
und Fabrikmethode sind klassenbasiert. Das Adapter-Muster kann sowohl klassenba-
siert als auch objektbasiert gelöst werden.
Strukturmuster (siehe Kapitel 4.2.1) befassen sich mit dem Aufbau von Strukturen
aus Klassen und Objekten. Im Folgenden werden die einzelnen Strukturmuster, die in
diesem Buch besprochen wurden, kurz beschrieben:
x Das Adapter-Muster (siehe Kapitel 4.3) passt eine vorhandene "falsche" Schnitt-
stelle an die gewünschte Form an.
x Das Brücke-Muster (siehe Kapitel 4.4) trennt die Klassenhierarchie einer Abstrak-
tion und ihrer Implementierung. Dadurch wird erreicht, dass diese beiden Teile
getrennt verändert und erweitert werden können. Man verbindet beide Teile durch
eine "Brücke". Für den Client ist nur die Hierarchie der Abstraktion sichtbar.
x Das Dekorierer-Muster (siehe Kapitel 4.5) soll es erlauben, zur Laufzeit eine zu-
sätzliche Funktionalität zu einem vorhandenen Objekt einer Klasse oder Subklasse
in dynamischer Weise hinzuzufügen.
x Das Fassade-Muster (siehe Kapitel 4.6) soll eine meist vereinfachte abstrakte
Schnittstelle zum Zugriff auf die Klassen eines Subsystems bereitstellen.
x Das Kompositum-Muster (siehe Kapitel 4.7) erlaubt es, dass bei der Verarbeitung
von Elementen in einer Baumstruktur einfache und zusammengesetzte Objekte
gleich behandelt werden. Eine Typprüfung entfällt.
Search WWH ::




Custom Search