Entwurfsmuster Flashcards
Alle Entwurfsmuster
Singleton
- Erzeugungsmuster
- Gültigkeit: objektbasiert
Wird eingesetzt, wenn nur eine Instanz einer Klasse verfügbar sein soll auf der globale Operationen ausgeführt werden.
Konstruktor ist private. Zugriff über +getInstance()
z.B.: Logger
Abstrakte Fabrik
- Erzeugungsmuster
- Gültigkeit: objektbasiert
Wird eingesetzt, um eine Schnittstelle zum konsistenten Erzeugen verwandter oder voneinander abhängiger Produkte anzubieten, ohne die ihrer gemeinsamen Erzeugung zugrundeliegende Fabrik benennen zu müssen.
z.B.: GUI Fabrik
Adapter
- Strukturmuster
- Gültigkeit: objekt- / klassenbasiert
Übersetzung einer vorgegebenen Schnittstelle einer Klasse in eine andere Schnittstelle, wie sie von einem Client erwartet wird.
Klassenbasiert:
Adapter1 erbt von Dienst und implementiert Interface
Aufruf: Adapter1.anfrage() -> Adapter1.service()
Objektbasiert:
Adapter2 hat Referenz auf Dienst und implementiert Interface
Aufruf: Adapter2.anfrage() -> dienst.service()
Brücke
- Strukturmuster
- Gültigkeit: objektbasiert
Durch Einsatz der Brücke werden Schnittstellen und Implementierungen in zwei getrennte Vererbungshierarchien organisiert.
Möglichkeit Implementierung erst zur Laufzeit auszuwählen bzw. zu variieren.
Proxy
- Strukturmuster
- Gültigkeit: objektbasiert
Kontrolliert Zugriff auf ein Objekt mit Hilfe eines vorgelagerten Stellvertreterobjekts.
Erlaubt in Abhängigkeit vom Kontrollergebnis eventuell zusätzliche Diensterbringung seitens des Proxy
Dekorierer
- Strukturmuster
- Gültigkeit: objektbasiert
Dynamische Erweiterung der Zuständigkeit eines Dienstes eines Objekts zur Laufzeit.
Kompositum
- Strukturmuster
- Gültigkeit: objektbasiert
Objekte werden zu einer Baumhierarchie zusammengefügt, um eine Teil-Ganzes-Hierarchie zu repräsentieren.
Ermöglicht, dass Clients sowohl einzelne Objekte, als auch Kompositionen von Objekten einheitlich behandeln können.
Schablonenmethode
- Verhaltensmuster
- Gültigkeit: klassenbasiert
Schablonenhafte Beschreibung eines Algorithmus, die bezüglich einer Reihe von Implementierungsdetails Freiheitsgrade zulässt
Befehl
- Verhaltensmuster
- Gültigkeit: objektbasiert
Befehle werden in Objekte gekapselt.
Befehle sollen vor ihrer Ausführung erfasst und verwaltet werden.
Befehle potentiellen Aufrufern als Parameter übergeben.
Befehle durch eine Queue verwalten.
Logbuch über ausgeführte Befehle führen, um diese evtl. rückgängig zu machen
Beobachter
- Verhaltensmuster
- Gültigkeit: objektbasiert
Änderung an einem Objekt sollen auf alle weiteren davon abhängigen Objekte konsistent übertragen werden. Dies soll erfolgen, ohne die betroffenen Objekte in eine Klasse integrieren zu müssen.
z.B.: Tabelle, Kuchendiagramm, Säulendiagramm
Strategie
- Verhaltensmuster
- Gültigkeit: objektbasiert
Einige Teile einer Aufgabe können unterschiedlich gelöst werden. Die aktuelle Variante soll zur Laufzeit vom Clients auswählbar sein.
Der nicht variable Teil der Aufgabe soll nur einmal gespeichert werden, um Redundanz zu vermeiden.
Zuständigkeitskette
- Verhaltensmuster
- Gültigkeit: objektbasiert
Der Client kennt zur Laufzeit nicht genau den Bearbeiter der von ihm erwünschten Anfrage.
Zur Bearbeitung spezieller Anfragen kommen unterschiedliche Diensterbringer in Frage.
Die Menge der für einen speziellen Dienst in Frage kommenden Bearbeiter soll dynamisch festlegbar sein.