Ich beschloss, in einem Universitätslabor ein Entwurfsmuster in Python zu schreiben. Obwohl ich das Entwurfsmuster nicht richtig verstand, hatte ich das Gefühl, dass ich es nicht in Python schreiben konnte. Vergleichen und verstehen wir also die Entwurfsmuster von Java und Ihrem bevorzugten JavaScript. Wenn Sie alle Muster in diesem Artikel schreiben, wird es lang sein, also werde ich für jedes Muster einen Artikel erstellen und die folgende Tabelle ausfüllen.
Zoll, um häufig auftretende Probleme im Software-Design zu lösen und wiederverwendbar zu machen 23 Arten von GoF-Designmustern (Gang of Four) sind berühmt GoF ist "Erich Gamma", "Richard Helm", "Ralph Johnson", "John Brisidis" Einführung des Begriffs Entwurfsmuster in die Softwareentwicklung zum ersten Mal in "Entwurfsmuster zur Wiederverwendung in der Objektorientierung".
Entwurfsmuster können aus verschiedenen Perspektiven kategorisiert werden
** Lösen Sie das Problem, indem Sie sich auf den Mechanismus zum Erstellen von Objekten konzentrieren und den Prozess der Objekterstellung steuern **
Mustername | Überblick |
---|---|
Factory Method | Erstellen Sie eine Instanz einer abgeleiteten Klasse basierend auf den übergebenen Daten und Ereignissen |
Abstract Factory | Erstellen Sie eine Instanz einer Klasse, ohne die Details der konkreten Klasse preiszugeben |
Builder | Trennen Sie den Vorgang zum Erstellen eines Objekts vom Darstellungsformular. Erstellen Sie immer den gleichen Objekttyp |
Prototype | Verwenden Sie beim Kopieren eine vollständig initialisierte Instanz |
Singleton | Eine Klasse mit nur einer Instanz, auf die global zugegriffen werden kann |
** Es geht um das Zusammensetzen von Objekten und wird verwendet, um das Verständnis der Beziehungen zwischen verschiedenen Objekten zu erleichtern **
Mustername | Überblick |
---|---|
Adapter | Machen Sie Schnittstellen verschiedener Klassen kompatibel, sodass auch Klassen, die die Schnittstellen nicht unterstützen, in Kombination verwendet werden können. |
Bridge | Trennen Sie die Schnittstelle des Objekts von der Implementierung, sodass die Schnittstelle und die Implementierung unabhängig voneinander geändert werden können |
Composite | Indem Sie die Struktur einzelner Objekte und Verbundwerkstoffe einheitlich behandeln, können Sie mehr tun, als sie separat zu behandeln. |
Decorator | Fügen Sie einem Objekt dynamisch die Verarbeitung hinzu |
Facade | Eine Klasse verbirgt die Komplexität des gesamten Subsystems |
Flyweight | Verwenden Sie kleine Instanzen, um Informationen, die überall verwendet werden, effizient auszutauschen |
Proxy | Ersatzobjekt, um das reale Objekt zu ersetzen |
** Konzentriert sich auf die Verbesserung und Vereinfachung der Kommunikation zwischen verschiedenen Objekten im System **
Mustername | Überblick |
---|---|
Interpreter | Fügen Sie Ihrer Anwendung sprachliche Elemente hinzu, um die Grammatik der Zielsprache zu berücksichtigen |
Template Method | Erstellen Sie einen Teil des Algorithmus in der Methode und verzögern Sie den Schritt zur Unterklasse |
Chain of Responsibility | So übergeben Sie Anforderungen nacheinander in einer Reihe von Objekten und finden ein Objekt, das dieses Element verarbeiten kann |
Command | Trennen Sie die Befehlsausführungsoperation von der Position, an der der Befehl ausgegeben wird |
Iterator | Greifen Sie nacheinander auf die Elemente der Sammlung zu, ohne das interne Verhalten der Sammlung zu kennen |
Mediator | Vereinfachen Sie die Interaktionen zwischen Klassen und verhindern Sie, dass Klassen direkt aufeinander verweisen |
Memento | Notieren Sie den internen Status des Objekts, damit es später wiederhergestellt werden kann |
Observer | So benachrichtigen Sie viele Klassen von Änderungen und stellen die Konsistenz zwischen Klassen sicher |
State | Ändern Sie das Verhalten eines Objekts, wenn sich der Status ändert~ |
Strategy | Verkapselt Algorithmen innerhalb einer Klasse und macht die Algorithmusauswahl unabhängig von der Klassenimplementierung |
Visitor | Fügen Sie einer Klasse eine neue Operation hinzu, ohne sie zu ändern |
[Einführung in Entwurfsmuster, die in der erweiterten und überarbeiteten Java-Sprache gelernt wurden](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82% E7% 89% 88Java% E8% A8% 80% E8% AA% 9E% E3% 81% A7% E5% AD% A6% E3% 81% B6% E3% 83% 87% E3% 82% B6% E3% 82% A4% E3% 83% B3% E3% 83% 91% E3% 82% BF% E3% 83% BC% E3% 83% B3% E5% 85% A5% E9% 96% 80-% E7% B5 % 90% E5% 9F% 8E-% E6% B5% A9 / dp / 4797327030) JavaScript-Entwurfsmuster
Recommended Posts