1. Strategie:
Definiert eine Familie von Algorithmen, kapselt jeden und macht sie austauschbar. Strategie lässt den Algorithmus unabhängig von den Kunden variieren, die ihn verwenden.
2. Dekorateur:
Fügen Sie einem Objekt dynamisch zusätzliche Verantwortlichkeiten hinzu. Dekorateure bieten eine flexible Alternative zur Unterklasse zur Erweiterung der Funktionalität.
3. Factory-Methode
Definieren Sie eine Schnittstelle zum Erstellen eines Objekts, aber lassen Sie die Unterklassen entscheiden, welche Klasse instanziiert werden soll. Mit der Factory-Methode kann eine Klasse die Instanziierung auf Unterklassen verschieben.,
4. Observer
Definieren Sie eine Eins-zu-Viele-Abhängigkeit zwischen Objekten, sodass alle Abhängigkeiten automatisch benachrichtigt und aktualisiert werden, wenn ein Objekt den Status ändert.
5. Chain of Responsibility
Vermeiden Sie es, den Absender einer Anfrage an seinen Empfänger zu koppeln, indem Sie mehr als einem Objekt die Möglichkeit geben, die Anfrage zu bearbeiten. Verketten Sie die empfangenden Objekte und übergeben Sie die Anforderung entlang der Kette, bis ein Objekt sie verarbeitet.
6. Singleton
Stellen Sie sicher, dass eine Klasse nur über eine Instanz verfügt, und stellen Sie einen globalen Zugriffspunkt dafür bereit.
7., Flyweight
Verwenden Sie die Freigabe, um eine große Anzahl feinkörniger Objekte effizient zu unterstützen. Ein Fliegengewicht ist ein gemeinsam genutztes Objekt, das in mehreren Kontexten gleichzeitig verwendet werden kann. Das Fliegengewicht fungiert in jedem Kontext als unabhängiges Objekt; Es ist nicht von einer Instanz des Objekts zu unterscheiden, das nicht geteilt wird.
8. Adapter
Konvertieren Sie die Schnittstelle einer Klasse in eine andere Schnittstelle, die Sie erwarten. Adapter lässt Klassen zusammenarbeiten, die aufgrund von Inkompatibilitätsschnittstellen nicht funktionieren könnten.
9. Fassade
Bietet eine einheitliche Schnittstelle zu einer Reihe von Schnittstellen in einem System., Fassade definiert eine übergeordnete Schnittstelle, die das Subsystem einfacher zu bedienen macht.
10. Template
Definieren Sie ein Skelett eines Algorithmus in einer Operation und verschieben Sie einige Schritte auf Unterklassen. Mit der Template-Methode können Unterklassen bestimmte Schritte eines Algorithmus neu definieren, ohne die Struktur der Algorithmen zu ändern.
11. Builder
Trennen Sie die Konstruktion eines komplexen Objekts von seiner Darstellung, sodass dieselben Konstruktionsprozesse unterschiedliche Darstellungen erstellen können.
12., Iterator
Bietet eine Möglichkeit, nacheinander auf die Elemente eines Aggregatobjekts zuzugreifen, ohne die zugrunde liegende Darstellung verfügbar zu machen.
13. Composite
Verfassen Sie Objekte in Baumstrukturen, um Teil-ganze Hierarchien darzustellen. Composite ermöglicht es Kunden, einzelne Objekte und Kompositionen von Objekten einheitlich zu behandeln.
14. Befehl
Kapselt eine Anforderung als Objekt, wodurch Sie Clients mit unterschiedlichen Anforderungen, Warteschlangen-oder Protokollanforderungen parametrieren und nicht löschbare Vorgänge unterstützen können.
15., Mediator
Definieren Sie ein Objekt, das kapselt, wie eine Gruppe von Objekten interagieren. Mediator fördert die lose Kopplung, indem Objekte sich nicht explizit aufeinander beziehen, und lässt Sie ihre Interaktion unabhängig voneinander variieren.
16. Status
Erlauben Sie einem Objekt, sein Verhalten zu ändern, wenn sich sein interner Status ändert. Das Objekt scheint seine Klasse zu ändern.
17. Proxy
Stellen Sie einen Ersatz oder Platzhalter für ein anderes Objekt bereit, um den Zugriff darauf zu steuern.
18., Abstract Factory
Bietet eine Schnittstelle zum Erstellen von Familien verwandter oder abhängiger Objekte, ohne deren konkrete Klassen anzugeben.
19. Bridge
Entkoppelt eine Abstraktion von ihrer Implementierung, sodass die beiden unabhängig voneinander variieren können.
20. Interpreter
Definieren Sie bei einer Sprache eine Darstellung für ihre Grammatik zusammen mit einem Interpreter, der die Darstellung verwendet, um Sätze in der Sprache zu interpretieren.
21., Memento
Ohne die Kapselung zu verletzen, erfassen und externalisieren Sie den internen Status eines Objekts, damit das Objekt später in diesen Zustand zurückversetzt werden kann.
22. Prototyp
Geben Sie die Arten von Objekten an, die mit einer prototypischen Instanz erstellt werden sollen, und erstellen Sie neue Objekte, indem Sie diesen Prototyp kopieren.
23. Besucher
Stellen eine Operation dar, die an den Elementen einer Objektstruktur ausgeführt werden soll. Mit Visitor können Sie eine neue Operation definieren, ohne die Klassen der Elemente zu ändern, auf denen sie ausgeführt wird.
Leave a Reply