Java-Entwurfsmuster
Inhaltsverzeichnis
- Beschreibung des Entwurfsmusters
- Fassadenmuster
- Strategiemuster
- Zusammenfassung der Entwurfsmuster
- Referenzen
Entwurfsmuster (Übersicht)
- Alle 23 Muster, die eine kluge Person namens GoF dachte
- Ziel ist eine objektorientierte Sprache
- Es gibt verschiedene andere Typen
――Wir versuchen, die Erweiterbarkeit (hauptsächlich) durch die Verwendung von Java-Funktionen zu verbessern.
--Erbe
--Polymorphismus
- Einkapselung usw.
- Der exzellente Veteran denkt so! Eine Sammlung von Ideen
- Keine konkrete Implementierungsmethode
- Verstehen Sie die Idee und wenden Sie sie auf Ihr eigenes Programm an
Entwurfsmuster (effektive Nutzung)
- Wenden Sie die Idee an und reflektieren Sie sie in Ihrer eigenen Quelle
- ≠ Nach dem Muster implementieren
- Nur verwenden, wenn der Effekt zu erwarten ist
- ≠ So viel wie möglich auftragen
- ≠ Täuschung der Wirksamkeit des Entwurfsmusters
- Wenn Sie es gewaltsam verwenden, hat es den gegenteiligen Effekt.
――Flexibel entscheiden Sie die Anwendung entsprechend der Situation
- ≠ Da die Antragsentscheidung zum Zeitpunkt des Entwurfs getroffen wurde, wird sie sich definitiv im Programm widerspiegeln
Entwurfsmuster (Vor- und Nachteile)
verdienen
- Verbesserte Erweiterbarkeit: Verwendung der Objektorientierung
- Verbesserte Wiederverwendbarkeit: Verwendung der Objektorientierung
- Verbesserte Lesbarkeit: Nutzung der Objektorientierung und gemeinsame Erkennung
- Verbesserte Übertragungsgeschwindigkeit Gemeinsame Erkennung
Nachteile (Probleme / Risiken)
- Abweichung von der aktuellen Idee / dem aktuellen Mechanismus (teilweise)
- Reduzierte Produktivität
- Halten Sie sich an das Muster
- Code-Komplexität
- Missverständnisse und unnötige Diskussionen aufgrund unterschiedlicher Interpretation (weil es abstrakt ist)
Entwurfsmuster (Nutzungszeitpunkt)
- Zur Zeit des Klassendesigns
- Zum Zeitpunkt des Refactorings
- Zum Zeitpunkt der Überprüfung
- Reduzierte Erklärungszeit für Prüfer
- Nur wenn beide Seiten das Muster kennen
- Zum Zeitpunkt der Programmuntersuchung
- Reduzierte Lesezeit
- Verbesserte Vorhersagegenauigkeit
- Nur wenn Sie das Muster kennen
--Wenn Sie die Programmierung ändern
Diesmal sind zwei Muster zu behandeln
- Nehmen Sie aus folgenden Blickwinkeln auf
--Einfach zu verstehen
--Einfach zu verwenden
- Ein gewisser Effekt ist zu erwarten
- Es gibt ein Beispiel um dich herum
- Fassadenmuster
- Strategiemuster
Fassadenmuster (Übersicht)
--Erstellen Sie eine Klasse, die den komplizierten Verarbeitungsablauf im Auftrag des Clients verarbeitet
- Die Clientseite kann eine komplizierte Verarbeitung durchführen, indem sie einfach die Facade-Klasse aufruft.
- Vereinfachte Verarbeitung auf der Client-Seite
- Das am häufigsten verwendete Muster, bis zu einem gewissen Grad unwissentlich
- Sehr nützlich für das Refactoring
Fassadenmuster (Nutzungsbedingungen)
- Es ist notwendig, verschiedene Klassen in einer Reihe von Prozessen aufzurufen
- Es ist ein allgemeiner Prozess, der von vielen Kunden aufgerufen wird.
Fassadenmuster (Zeichen)
- Client
- Klassen, die eine komplizierte Verarbeitung durchführen möchten
- Rufen Sie die Fassadenklasse an
- Facade
- Klasse, die komplexe Verarbeitungsaufrufe akzeptiert
- Rufen Sie die realen Klassen an
- Reale Klassengruppe
- Eine Gruppe von Klassen, die einen Teil der komplizierten Verarbeitung übernehmen
- Zum erforderlichen Zeitpunkt für die Fassadenklasse angerufen
Fassadenmuster (Bild)

Fassadenmuster (Vor- und Nachteile)
verdienen
- Verbesserte Lesbarkeit durch Vereinfachung des Clients
- Vereinfachung der Hinzufügung / Korrektur / Löschung der Verarbeitung
- Vereinfachung des Hinzufügens / Löschens von Clients
Fehler
- Unnötige Massenproduktion der Fassadenklasse
Fassadenmuster (Zusammenfassung)
- Die komplizierte Verarbeitung erfolgt in einer Klasse
- Einfaches Hinzufügen der Verarbeitung auf der Clientseite
――Es ist relativ einfach anzuwenden
――Wenn Sie die Verwendung nicht eingrenzen, nehmen nutzlose Klassen zu und dies hat den gegenteiligen Effekt
Strategiemuster (Übersicht)
- Unterklasse des Teils, in dem die Verarbeitung durch bedingte Verzweigung umgeschaltet wird
- Minimale Ergänzung zu vorhandenen Quellen bei steigenden Bedingungen
- Sehr ähnlich dem Zustandsmuster
Strategiemuster (Charaktere)
- Strategy
- Schnittstelle zur Verwendung der Strategie
- Verantwortlich für die Verarbeitung der Typdefinition und die Wiederverwendung des Typs
- ConcreteStrategy
- Umsetzung der Strategie
――Verantwortlich für die eigentliche Verarbeitung
- Context
- Klassen, die Strategie verwenden
- Hat eine Variable vom Typ Strategie
- Rufen Sie die Verarbeitung des Strategietyps an, verstehen Sie jedoch nicht die tatsächliche Situation
- Client
- Übertragen Sie die Art der Strategie in den Kontext
- Anrufkontextverarbeitung
Strategiemuster (Nutzungsbedingungen)
- Eine ähnliche Verarbeitung wird durch bedingte Verzweigung aufgerufen
- Die Bedingungen werden voraussichtlich in Zukunft steigen oder fallen
Strategiemuster (Bild / nicht verwendet)

Strategiemuster (bei Verwendung von Bild)

Strategiemuster (Vor- und Nachteile)
verdienen
- Klarer Einflussbereich beim Hinzufügen einer Verarbeitungsklasse
- Bestehende Verarbeitung nicht ändern
- Leicht verständliche Verarbeitung des gesamten Programms
Nachteile (Risiken)
- Codekomplexität aufgrund unangemessener Anwendung
Strategiemuster (Zusammenfassung)
- Wird verwendet, wenn eine ähnliche Verarbeitung in bedingter Verzweigung ausgeführt wird
- Der Einflussbereich bestehender Quellen kann eingegrenzt werden
- Etwas umständlicher und komplizierter als Facade
- Wenn keine zusätzliche Verarbeitung erwartet wird, ist der Aufwand größer
Entwurfsmuster (Zusammenfassung)
- Nutzung der Objektorientierung für Skalierbarkeit und Wiederverwendbarkeit
- Verbessert die Lesbarkeit (manchmal)
――Wenden Sie die Idee an, anstatt sie so zu verwenden, wie sie ist
- Eine Kombination ist ebenfalls möglich
- Mit 〇〇 Muster! Die Kommunikation ist schnell und einfach, wenn Sie nur mit kommunizieren können
――Da das Original rau ist, gibt es einen Unterschied in der Interpretation
- Einige der Bücher, die ich dieses Mal las, hatten unterschiedliche Interpretationen
- Wenn Sie es übertreiben, wird es eine Verschwendung von Arbeit und Mühe sein.
Referenzen (Titel weggelassen)
--Designmuster in Java-Sprache gelernt
- Autor: Hiroshi Yuki
- Gründliche Erfassung von Java-Entwurfsmustern
- Autor: Japan Software Engineering Co., Ltd.
--Refactoring: Bestehenden Code sicher verbessern
- Autor: Martin Fowler
- Übersetzung: Kiminobu Kodama, Masao Tomono, Akira Hirasawa, Takashi Umezawa
- Aus Fallstudien gewonnene Entwurfsmuster
- Autor: Naoki Fukuda
- URL:https://www.ogis-ri.co.jp/otc/hiroba/technical/DesignPatternsWithExample/
――Dramatisch vor ◯ Designmuster, das vom After-Sales gelernt wurde
- Autor: karoten512
- URL:http://karoten512.hatenablog.com/entry/2017/10/21/134048