5 Der Entwurfsmusterkatalog


[Seminarübersicht]...[Entwurfsmuster nach Gamma]...[6 Glossar]

Der Entwurfsmusterkatalog nach Gamma ist zwar das Resultat der Erfahrung vieler Experten aus vielen Jahren, aber keiner seiner Autoren würde ihn als komplett bezeichnen. Er enthält grundlegende Entwurfsmuster, die sicherlich oft Anwendung finden. Die Autoren laden die Leser sogar dazu ein, den Katalog anzupassen und zu erweitern.
Weiterhin werden solche OOP-Techniken kurz erläutert, die über das entsprechende Grundwissen (das beim Leser vorausgesetzt wird !) hinausgehen.
In einer großen Fallstudie wird ein WYSIWYG-Texteditor (bzw. Teile davon) entworfen. Hier kommen bereits acht Entwurfsmuster zum Einsatz. Dieser Teil stellt einen guten Einstieg in die Welt der Entwurfsmuster dar und ist gerade für unerfahrene Entwickler lesenswert.


Die Klassifizierung der Muster

Die Klassifizierung der Muster ermöglicht es dem Benutzer, eigene (oder abgeguckte) Muster selbständig in den Katalog aufzunehmen. Weiterhin erleichtert sie das finden passender Muster im Katalog.

Gamma & Co. teilen die Muster auf zwei Weisen mit zwei bzw. drei Ausprägungen auf, was sechs verschiedene Kombinationen ermöglicht:

1. Die Aufgabe

Erzeugungsmuster beschreiben Strukturen, die den Prozeß der Objekterzeugung enthalten. So wird das System von der konkreten Realisation entkoppelt. Das eigentliche Programm arbeitet auf einer hohen Ebene der Abstraktion und delegiert die Erzeugung der Objekte an die Erzeugungsstrukturen.
Im einfachsten Fall arbeitet ein Klient mit abstrakten Klassen und läßt die konkreten Objekte von speziellen Strukturen erzeugen, die aus dem Kontext heraus die jeweils richtigen Klassen kennen.
Hinter der Erzeugung kann aber auch ein komplexer Prozeß stehen, in dem mehrere Objekte erzeugt und miteinander in Beziehung gesetzt werden müssen. (Objektkomposition !) In diesem Fall ist es natürlich zwingend erforderlich, die Erzeugung zu delegieren, da das eigentliche System sonst unnötig verkompliziert würde.

Strukturmuster zeigen auf, auf welche Art und Weise Klassen bzw. Objekte zu größeren Strukturen zusammengefaßt werden können. Nahezu alle der von Strukturmustern beschriebenen Strukturen entstehen zur Laufzeit, beruhen also auf der Technik der Objektkomposition.

Verhaltensmuster beschreiben Strukturen, die am Kontrollfluß innerhalb der Anwendung beteiligt sind. Sie konzentrieren sich also auf Algorithmen und die Delegation von Zuständigkeiten.


2. Der Gültigkeitsbereich

Strukturen, denen ein klassenbasiertes Muster zu Grunde liegt, sind durch Klassenvererbung entstanden und sie sind somit zur Übersetzungszeit festgelegt.

Analog hierzu nutzen objektbasierte Muster die Objektdkomposition. Die von ihnen verwendeten Strukturen entstehen zur Laufzeit und sind dynamisch.

Dieser Unterschied ist, wie schon Abschnitt 2 zeigt, stets zu beachten. Zur Muster-Klassifizierung allerdings ist die Aufgabe um einiges geeigneter. Dies zeigt auch die Tatsache, daß die "Gang Of Four" ihren Katalog 1. nach der Aufgabe der Muster und 2. alphabetisch geordnet hat.


Die folgende Übersicht zeigt alle Muster entsprechend dieser Klassifikation. Hier fällt auf, daß 19,5 von 23 Mustern objektbasiert sind. Dies zeigt, daß das "große Ziel" des oo-Softwareentwurfes, die Flexibilität und Erweiterbarkeit, auch in den Mustern verankert ist.


Die Klassifikation der Entwurfsmuster

Entwurfsmuster

Aufgabe

Erzeugungsmuster

Strukturmuster

Verhaltensmuster

Gültigkeitsbereich

klassenbasiert

Fabrikmethode

Adapter

Interpreter
Schablonenmethode

objektbasiert

Abstrakte Fabrik
Erbauer
Prototyp
Singleton

Adapter
Brücke
Dekorierer
Fassade
Fliegengewicht
Kompositum
Proxy

Befehl
Beobachter
Besucher
Iterator
Momento
Strategie
Vermittler
Zustand
Zuständigkeitskette


Die folgende Abbildung zeigt die Beziehungen zwischen den Mustern auf. Sie basiert auf den Informationen, die im Abschnitt über verwandte Muster einer jeden Musterbeschreibung enthalten ist.


[Seminarübersicht]...[Entwurfsmuster nach Gamma]...[6 Glossar]...[Seitenanfang]