Middle
Welche Designmuster kennen Sie?
sobes.tech KI
Antwort von AI
Erzeugungsmuster:
- Fabrikmethode (Factory Method): Definiert eine Schnittstelle zur Objekterstellung, lässt aber Unterklassen entscheiden, welche Klasse instanziiert wird.
- Abstrakte Fabrik (Abstract Factory): Bietet eine Schnittstelle zur Erstellung von Familien verwandter oder abhängiger Objekte, ohne deren konkrete Klassen zu nennen.
- Builder (Builder): Trennt die Konstruktion eines komplexen Objekts von seiner Darstellung, sodass dieselbe Konstruktionsprozesses verschiedene Darstellungen erzeugen kann.
- Prototyp (Prototype): Erstellt neue Objekte durch Kopieren eines bestehenden Exemplar.
- Singleton (Singleton): Garantiert, dass eine Klasse nur eine Instanz hat, und bietet einen globalen Zugriffspunkt darauf.
Strukturelle Muster:
- Adapter (Adapter): Wandelt die Schnittstelle einer Klasse in eine andere um, die die Clients erwarten.
- Brücke (Bridge): Trennt eine Abstraktion von ihrer Implementierung, sodass beide unabhängig voneinander variiert werden können.
- Kompositum (Composite): Stellt Objekte in Baumstrukturen zusammen, um Hierarchien Teil-Ganzes zu repräsentieren. Ermöglicht es, einzelne Objekte und deren Kompositionen einheitlich zu behandeln.
- Dekorateur (Decorator): Fügt einem Objekt dynamisch zusätzliche Verantwortlichkeiten hinzu. Ist eine flexible Alternative zur Unterklassifizierung zur Erweiterung der Funktionalität.
- Fassade (Facade): Bietet eine einheitliche Schnittstelle zu einer Menge von Schnittstellen eines Subsystems. Definiert eine höhere Abstraktion, die das Subsystem einfacher nutzbar macht.
- Flyweight (Flyweight): Wird verwendet, um eine große Anzahl ähnlicher Objekte effizient zu teilen.
- Proxy (Proxy): Bietet ein Stellvertreterobjekt, das den Zugriff auf ein anderes Objekt kontrolliert.
Verhaltensmuster:
- Kette der Verantwortung (Chain of Responsibility): Ermöglicht das Weiterreichen von Anfragen entlang einer Kette von Handlern. Jeder Handler entscheidet, ob er die Anfrage bearbeitet oder an den nächsten weitergibt.
- Befehl (Command): Kapselt eine Anfrage als Objekt, um Clients mit verschiedenen Anfragen zu parametrisieren, Anfragen in eine Warteschlange zu stellen oder zu protokollieren sowie Undo-Operationen zu unterstützen.
- Iterator (Iterator): Bietet eine Möglichkeit, sequentiell auf die Elemente eines aggregierten Objekts zuzugreifen, ohne seine interne Repräsentation offenzulegen.
- Mediator (Mediator): Definiert ein Objekt, das die Interaktion einer Gruppe von Objekten kapselt. Fördert lose Kopplung, indem es explizite Referenzen zwischen Objekten vermeidet.
- Memento (Memento): Erfängt und externalisiert den internen Zustand eines Objekts, ohne seine Kapselung zu verletzen, sodass das Objekt später in diesen Zustand zurückversetzt werden kann.
- Beobachter (Observer): Definiert eine "1 zu viele"-Abhängigkeit zwischen Objekten, so dass bei einer Zustandsänderung alle Abhängigen automatisch benachrichtigt und aktualisiert werden.
- Zustand (State): Ermöglicht es einem Objekt, sein Verhalten zu ändern, wenn sich sein interner Zustand ändert. Das Objekt scheint seine Klasse zu wechseln.
- Strategie (Strategy): Definiert eine Familie von Algorithmen, kapselt jeden und macht sie austauschbar. Ermöglicht es, den Algorithmus unabhängig von den Clients, die ihn verwenden, zu variieren.
- Template-Methode (Template Method): Definiert den Algorithmus-Skelett in einer Operation, wobei einige Schritte an Unterklassen delegiert werden. Erlaubt es Unterklassen, bestimmte Schritte des Algorithmus neu zu definieren, ohne seine Struktur zu ändern.
- Besucher (Visitor): Repräsentiert eine Operation, die auf den Elementen einer Objektstruktur ausgeführt werden soll. Ermöglicht es, eine neue Operation zu definieren, ohne die Klassen der Elemente zu ändern, auf die sie wirkt.