Abstrakte Fabrik
Biete eine Schnittstelle zum Erzeugen von Familien verwandter oder voneinander abhängiger Objekte, ohne
ihre konkreten Klassen zu bennen.
Erbauer
Trenne die Konstruktion eines komplexen Objekts von seiner Repräsentation, so dass derselbe
Konstruktionsprozess unterschiedliche Repräsentationen erzeugen kann.
Fabrikmethode
Definiere eine Klassenschnittstelle mit Operationen zum Erzeugen eines Objekts, aber lasse Unterklassen
entscheiden, von welcher Klasse das zu erzeugende Objekt ist. Fabrikmethoden ermöglichen es einer Klasse,
die Erzeugung von Objekten an Unterklassen zu delegieren.
Prototyp
Bestimme die Arten zu erzeugender Objekte durch die Verwendung eines prototypischen Exemplars und erzeuge
neue Objekte durch Kopieren dieses Prototypen.
Singleton
Sichere ab, dass eine Klasse genau ein Exemplar besitzt, und stelle einen globalen Zugriffspunkt
darauf bereit.
Adapter (Klassenadapter, Objektadapter)
Passe die Schnittstelle der Klasse an eine andere von den Klienten erwartete Schnittstelle an.
Das Adaptermuster lässt Klassen zusammenarbeiten, die wegen inkompatibler Schnittstellen ansonsten nicht
in der Lage wären.
Brücke
Entkopple eine Abstraktion von ihrer Implementierung, so dass beide unabhängig
voneinander varriert werden können.
Dekorierer
Erweitere ein Objekt dynamisch um Zuständigkeiten. Dekorierer bilden eine flexible
Alternative zur Unterklassenbildung, um die Funktionalität der Klasse zu erweitern.
Fassade
Biete eine einheitliche Schnittstelle zu einer Menge von Schnittstellen eines Subsystems.
Die Fassadenklasse definiert eine abstrakte Schnittstelle, welche die Benutzung des Subsystems
vereinfacht.
Fliegengewicht
Nutze Objekte kleinster Granularität gemeinsam, um große Mengen von
ihnen effizient verwenden zu können.
Kompositum
Füge Objekte zu Baumstrukturen zusammen, um Teil-Ganzes-Hierarchien zu repräsentieren.
Das Kompositionsmuster ermöglicht es Klienten, sowohl einzelne Objekte als auch Kompositionen von
Objekten einheitlich zu behandeln.
Proxy
Kontrolliere den Zugriff auf ein Objekt mit Hilfe eines vorgelagerten Stellvertreterobjekts.
Befehl
Kapsle einen Befehl als ein Objekt. Dies ermöglicht es, Klienten mit verschiedenen Anfragen zu
parametrisieren, Operationen in eine Queue zu stellen, ein Logbuch zu führen und Operationen
rückgängig zu machen.
Beobachter
Definiere eine 1-zu-n-Abhängigkeit zwischen Objekten, so dass die Änderung des Zustands eines
Objekts dazu führt, dass alle abhängigen Objekte benachrichtigt und automatisch aktualisiert
werden.
Besucher
Kapsle eine auf den Elementen einer Objektstruktur auszuführende Operation als ein Objekt.
Das Besuchermuster ermöglicht es Ihnen, eine neue Operation zu definieren, ohne die Klassen der von
ihr bearbeiteten Elemente zu verändern.
Interpreter
Definiere für eine gegebene Sprache eine Repräsentation der Grammatik sowie einen
Interpreter, der die Repräsentation nutzt, um Sätze in der Sprache zu interpretieren.
Iterator
Ermögliche den sequentiellen Zugriff auf die Elemente eines zusammengesetzten Objekts, ohne
seine zugrundeliegende Repräsentation offenzulegen.
Memento
Erfasse und externalisiere den internen Zustand eines Objekts, ohne seine Kapselung
zu verletzen, so dass das Objekt später in diesem Zustand zurückversetzt werden kann.
Schablonenmethode
Definiere das Skelett eines Algorithmus in einer Operation und delegiere einzelne Schritte an
Unterklassen. Die Verwendung einer Schablonenmethode ermöglicht es Unterklassen, bestimmte
Schritte eines Algorithmus zu überschreiben, ohne seine Struktur zu verändern.
Strategie
Definiere eine Familie von Algorithmen, kapsle jeden einzelnen und mache sie austauschbar.
Das Strategiemuster ermöglicht es, den Algorithmus unabhängig von ihn nutzenden
Klienten zu variieren.
Vermittler
Definiere ein Objekt, welches das Zusammenspiel einer Menge von Objekten in sich kapselt.
Vermittler fördern lose Kopplung, indem sie Objekte davon abhalten, aufeinander explizit
Bezug zu nehmen. Sie ermöglichen es Ihnen, das Zusammenspiel der Objekte von ihnen
unabhängig zu variieren.
Zustand
Ermögliche es einem Objekt, sein Verhalten zu ändern, wenn sein interner Zustand
sich ändert. Es wird so aussehen, als ob das Objekt sein Klasse gewechselt hat.
Zuständigkeitskette
Vermeide die Kopplung des Auslösers einer Anfrage mit seinem Empfänger, indem mehr als ein Objekt
die Möglichkeit erhält, die Aufgabe zu erledigen. Verkette die empfangenden Objekte und leite
die Anfrage an der Kette entlang, bis ein Objekt sie erledigt.
Summarized by: Dipl.-Ing. (univ.) Dipl.-Ing. (FH) Ralf Isken
Only for private use.
Source: Entwurfsmuster; Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides; Addison-Wesley; 1996