Heim  >  Artikel  >  Backend-Entwicklung  >  Die 23 Designmuster von Dahua PHP bieten hohe Energie und keine störenden Stellen während des gesamten Prozesses

Die 23 Designmuster von Dahua PHP bieten hohe Energie und keine störenden Stellen während des gesamten Prozesses

天蓬老师
天蓬老师Original
2018-01-09 11:29:436796Durchsuche

1. Kreatives Designmuster

1. FABRIK – Wenn du ein Mädchen jagen willst, musst du ihr eine Mahlzeit gönnen. McDonald's Chicken Wings und KFC Chicken Wings sind beides Dinge, die Mädchen gerne essen. Auch wenn die Geschmäcker unterschiedlich sind, egal, ob Sie mit Ihrer Freundin zu McDonald's oder KFC gehen, fragen Sie einfach den Kellner: „Vier Chicken Wings.“ McDonald's und KFC sind Fabriken, die Chicken Wings herstellen
Fabrikmodell: Kundenklasse und Fabrikklasse sind getrennt. Wann immer ein Verbraucher ein bestimmtes Produkt benötigt, muss er es einfach bei der Fabrik anfordern. Verbraucher können neue Produkte ohne Änderungen akzeptieren. Der Nachteil besteht darin, dass bei einer Änderung des Produkts auch die Factory-Klasse entsprechend geändert werden muss. Zum Beispiel: wie man es erstellt und wie man es dem Kunden bereitstellt.
2. BUILDER – Was Mädchen am liebsten hören, ist „Ich liebe dich“. Wenn du Mädchen aus verschiedenen Orten triffst, solltest du ihnen das in ihrem Dialekt sagen können. Der Übersetzer hat einen Knopf Wenn ich ein Mädchen sehe, muss ich nur den entsprechenden Knopf drücken, und schon kann es in der entsprechenden Sprache „Ich liebe dich“ sagen Du“ Baumeister. (Dies muss einfacher zu verkaufen sein als der vom US-Militär im Irak verwendete Übersetzer)
Konstruktionsmodus: Trennen Sie die interne Darstellung des Produkts vom Produktgenerierungsprozess, sodass ein Konstruktionsprozess Produktobjekte mit unterschiedlichen internen Darstellungen generiert. Der Konstruktionsmodus ermöglicht es, das innere Erscheinungsbild des Produkts unabhängig zu ändern, und der Kunde muss die Details der inneren Zusammensetzung des Produkts nicht kennen. Der Build-Modus erzwingt einen schrittweisen Build-Prozess.
3. FABRIKMETHODE – Laden Sie MM zu McDonald’s ein, um Hamburger zu essen. Es ist nervig, sich an jeden zu erinnern und MM zum Kellner zu bringen Bitten Sie das Mädchen einfach, dem Kellner direkt zu sagen, welche Art von Burger Sie möchten.
Factory-Methodenmuster: Die Kern-Factory-Klasse ist nicht mehr für die Erstellung aller Produkte verantwortlich, sondern überlässt die spezifische Erstellungsarbeit den Unterklassen und wird zu einer abstrakten Factory-Rolle, die nur für die Bereitstellung der Schnittstellen verantwortlich ist, die bestimmte Factory-Klassen implementieren müssen. Ohne auf die Details einzugehen, welche Produktklasse instanziiert werden soll.
4. PROTOTYP – Wenn Sie mit einem Mädchen auf QQ chatten, müssen Sie einige liebevolle Worte sagen. Wenn nötig, kopieren Sie sie einfach und fügen Sie sie in QQ ein Worte. (100 Yuan pro Kopie, möchten Sie es)
Originalmodellmodus: Geben Sie den Typ des zu erstellenden Objekts an, indem Sie ein Prototypobjekt angeben, und erstellen Sie dann weitere Objekte desselben Typs, indem Sie das Prototypobjekt kopieren. Das ursprüngliche Modellmuster ermöglicht das dynamische Hinzufügen oder Reduzieren von Produktkategorien. Die Produktkategorien müssen keine vorgegebene hierarchische Struktur haben. Das ursprüngliche Modellmuster ist für jede hierarchische Struktur geeignet. Der Nachteil besteht darin, dass jede Klasse mit einer Klonmethode ausgestattet sein muss.
5. SINGLETON – Ihre Ehemänner sind alle ich. Ich bin der Ehemann Sigleton in unserer Familie Es ist ein Traum, wie kann so etwas Gutes passieren)
Singleton-Modus: Der Singleton-Modus stellt sicher, dass eine bestimmte Klasse nur eine Instanz hat, instanziiert sich selbst und stellt diese
Instanz dem gesamten System zur Verfügung. Das Singleton-Muster sollte nur verwendet werden, wenn eine echte „Einzelinstanz“-Anforderung besteht.

2. Strukturmodell
6. ADAPTER – Ich habe auf der Party einer Freundin eine schöne Frau namens Sarah getroffen. Sie kam aus Hongkong, aber ich kann kein Kantonesisch und sie kann kein Mandarin, also habe ich es getan Ich möchte mich an meinen Freund Kent wenden, um Hilfe zu erhalten. Jetzt dient er als Adapter zwischen Sarah und mir und ermöglicht es Sarah und mir, miteinander zu reden (ich weiß nicht, ob er mir einen Streich spielen wird).
Adapter (Transformator). ) Modus: Verwandeln Sie die Schnittstelle einer Klasse in eine andere Schnittstelle, auf die sich der Client freuen kann, sodass zwei Klassen, die ursprünglich aufgrund nicht übereinstimmender Schnittstellen nicht zusammenarbeiten konnten, zusammenarbeiten können. Die Anpassungsklasse kann basierend auf den Parametern eine geeignete Instanz an den Client zurückgeben.
7. BRÜCKE – Wenn du morgens ein Mädchen triffst, sag „Guten Morgen“; wenn du ein Mädchen am Abend triffst, sag „Guten Abend“; wenn du ein Mädchen triffst, das ein neues Kleid trägt, sag, dass dein Kleid so schön ist. Wenn du ein Mädchen triffst, wirst du ein neues machen. Deine Haare sind so schön. Stellen Sie mir keine Fragen wie „Was sagen Sie, wenn Sie morgens Ihre Freundin mit einer neuen Frisur treffen?“, sondern nutzen Sie BRIDGE, um sie selbst zu kombinieren.
Brückenmuster: Abstraktion von Umsetzung entkoppeln, damit beides möglich ist unabhängig voneinander ändern, das heißt, die starke Assoziation zwischen ihnen wird in eine schwache Assoziation umgewandelt, das heißt, es wird eine Kombinations-/Aggregationsbeziehung anstelle einer Vererbungsbeziehung zwischen der Abstraktion und der Implementierung eines Softwaresystems verwendet, sodass sich die beiden unabhängig voneinander ändern können .
8. COMPOSITE – Mary hat heute Geburtstag. „Es ist mein Geburtstag und du willst mir ein Geschenk machen.“ „Na gut, geh in den Laden und wähle es selbst aus.“ „Dieses T-Shirt ist hübsch, kauf es, dieser Rock ist hübsch, kauf es, das.“ Die Tasche ist auch ziemlich gut. „Kauf sie.“ „Hey, ich habe drei Teile gekauft. Ich habe dir nur ein Geschenk versprochen.“ „Was, ein perfektes Set.“ Miss, bitte packen Sie sie ein.“ „“…“, MM wird den Composite-Modus verwenden. Haben Sie ihn gemeistert?
Zusammengesetzter Modus: Der zusammengesetzte Modus organisiert Objekte in einer Baumstruktur, die zur Beschreibung der Beziehung zwischen dem Ganzen und seinen Teilen verwendet werden kann. Das Kompositionsmuster ist ein Muster, das sich mit Baumstrukturen von Objekten befasst. Der Synthesemodus stellt die Beziehung zwischen Teilen und dem Ganzen mithilfe einer Baumstruktur dar. Der Kompositionsmodus ermöglicht es dem Client, einzelne Komponentenobjekte genauso zu behandeln wie das aus ihnen zusammengesetzte zusammengesetzte Objekt.
9. DEKORATORIN – Nachdem Mary gefeiert hat, ist es an Sarly, ihren Geburtstag zu feiern. Es ist besser, sie nicht selbst zu bitten, sonst sind die Essenskosten für diesen Monat definitiv aufgebraucht Letztes Jahr habe ich den Gipfel des Huashan-Berges erreicht und geschrieben: „Das beste Geschenk ist, dich zu lieben, Fita.“ Ich ging zum Geschenkeladen auf der Straße und kaufte einen Bilderrahmen (das Mädchen, das die Geschenke verkauft, ist auch sehr schön) und fragte dann Mike , der ein Kunstdesigner nebenan ist, um eine schöne Schachtel zu entwerfen, in die man sie stecken kann. „„, wir sind alle Dekorateure, und letztendlich dekorieren wir mich als Person.
Dekorationsmodus: Der Dekorationsmodus erweitert die Funktionalität von Objekten auf transparente Weise für den Client. Er ist eine Alternative zur Vererbung und bietet mehr Flexibilität als die Vererbung. Fügen Sie einem Objekt dynamisch Funktionen hinzu, und diese Funktionen können dynamisch rückgängig gemacht werden. Hinzufügen einer sehr großen Menge an Funktionalität, die sich aus Permutationen und Kombinationen einiger Grundfunktionen ergibt.
10. FASSADE – Ich habe eine professionelle Nikon-Kamera und stelle die Blende und den Verschluss gerne selbst manuell ein, damit die aufgenommenen Fotos professionell sind, aber MM versteht das nicht, selbst nachdem er es mir eine Zeit lang beigebracht hat lange Zeit. Glücklicherweise verfügt die Kamera über einen Fassadengestaltungsmodus. Wenn Sie die Kamera auf den automatischen Modus einstellen, müssen Sie nur auf das Ziel zielen und den Auslöser drücken, sodass MM diese Kamera auch verwenden kann Mach Fotos von mir.
Fassadenmodus: Die externe Kommunikation mit einem Subsystem muss über ein einheitliches Fassadenobjekt erfolgen. Das Fassadenmuster bietet eine High-Level-Schnittstelle, die die Verwendung von Subsystemen erleichtert. Jedes Subsystem hat nur eine Fassadenklasse und diese Fassadenklasse hat nur eine Instanz, was bedeutet, dass es sich um ein Singleton-Muster handelt. Das gesamte System kann jedoch mehrere Fassadenklassen haben.
11. FLYWEIGHT – Ich schicke jeden Tag Textnachrichten an MM und meine Finger sind erschöpft. Ich habe vor Kurzem ein neues Mobiltelefon gekauft, das ich verwenden kann Nehmen Sie es einfach heraus und fügen Sie MM davor ein. Ihr Name kann gesendet werden, ohne ihn Wort für Wort einzugeben. Der gemeinsame Satz ist Flyweight, und der Name MM ist das extrahierte externe Merkmal, das je nach Kontext verwendet wird.
Fliegengewichtsmodus: FLYWEIGHT bezieht sich auf das Bantamgewicht bei Boxkämpfen. Der Fliegengewichtsmodus unterstützt effizient eine große Anzahl feinkörniger Objekte auf gemeinsame Weise. Der Schlüssel zum Teilen des Fliegengewichtsmodells liegt in der Unterscheidung zwischen intrinsischen und extrinsischen Zuständen. Der intrinsische Zustand wird im Fliegengewicht gespeichert und ändert sich nicht bei Änderungen in der Umgebung. Der äußere Zustand ändert sich mit Änderungen in der Umgebung. Extrinsische Zustände können intrinsische Zustände nicht beeinflussen, sie sind unabhängig voneinander. Unterscheiden Sie den Status, der gemeinsam genutzt werden kann, von dem Status, der nicht gemeinsam genutzt werden kann, und entfernen Sie den Status, der nicht gemeinsam genutzt werden kann, aus der Klasse. Der Client kann gemeinsame Objekte nicht direkt erstellen, sondern sollte zum Erstellen gemeinsamer Objekte ein Factory-Objekt verwenden. Der Fliegengewichtsmodus reduziert die Anzahl der Objekte im Speicher erheblich.
12. PROXY – Das Chatten mit einem Mädchen beginnt immer mit „Hallo, hallo“, „Woher kommst du?“ „Wie groß bist du?“ Wie Seien Sie mein Stellvertreter und richten Sie eine automatische Antwort ein, wenn Sie diese Wörter erhalten, und benachrichtigen Sie mich dann über die Antwort, wenn Sie andere Wörter erhalten. Wie wäre es damit? Cool.
Proxy-Modus: Der Proxy-Modus stellt ein Proxy-Objekt für ein bestimmtes Objekt bereit, und das Proxy-Objekt steuert den Verweis auf das Quellobjekt. Agentur liegt vor, wenn eine Person oder Institution im Namen einer anderen Person oder Institution handelt. In einigen Fällen möchte oder kann der Client nicht direkt auf ein Objekt verweisen, und das Proxy-Objekt kann direkt als Vermittler zwischen dem Client und dem Zielobjekt fungieren. Der Client kann den Unterschied zwischen einem Proxy-Themenobjekt und einem echten Themenobjekt nicht erkennen. Der Proxy-Modus kennt das echte Proxy-Objekt nicht, sondern enthält nur eine Schnittstelle des Proxy-Objekts. Zu diesem Zeitpunkt kann das Proxy-Objekt das Proxy-Objekt nicht erstellen und von anderen Rollen im System übergeben werden.
Drei, Verhaltensmuster
13. KETTE DER VERANTWORTUNG – Ich ging abends zum Englischunterricht und saß nur zum Spaß in der letzten Reihe. Wow, da saßen mehrere wunderschöne Mädchen vor mir . Suchen Sie ein Blatt Papier und schreiben Sie „Hallo, können Sie meine Freundin sein? Wenn Sie nicht möchten, geben Sie es bitte weiter.“ Hoppla, das Mädchen in der ersten Reihe hat es weitergegeben Hinweis an den Lehrer. Ich habe gehört, du bist eine alte Jungfer, lauf!
Modell der Verantwortungskette: Im Modell der Verantwortungskette sind viele Objekte
durch den Verweis jedes Objekts auf seine untergeordnete Familie verbunden, um eine Kette zu bilden. Die Anfrage wird in der Kette nach oben weitergeleitet, bis ein Objekt in der Kette beschließt, die Anfrage zu bearbeiten. Der Client weiß nicht, welches Objekt in der Kette letztendlich die Anfrage bearbeitet, und das System kann die Kette dynamisch neu organisieren und Verantwortlichkeiten zuweisen, ohne dass dies Auswirkungen auf den Client hat. Der Verarbeiter hat zwei Möglichkeiten: die Verantwortung übernehmen oder die Verantwortung an die nächste Partei weitergeben. Eine Anfrage kann letztendlich von keinem empfangenden Objekt angenommen werden.
14. BEFEHL – Ich habe ein Mädchen, dessen Familie sehr streng ist und wir uns nicht treffen können, deshalb ist sie darauf angewiesen, dass ihr Bruder uns Nachrichten sendet. Wenn sie Anweisungen für mich hat, schreibe ich einfach eine Nachricht an ihren Bruder. Bring es mir. Nein, ihr Bruder schickte ihm einen weiteren BEFEHL, als er ihm eine Schüssel mit verschiedenen Nudeln schenkte. Unerwartet sagte er: „Ich habe den drei Freunden meiner Schwester gleichzeitig BEFEHLE geschickt, und du bist der Jüngste.“ Du bist so wütend, dass du mich zum Nudelnessen eingeladen hast.“,
Befehlsmodus: Der Befehlsmodus kapselt eine Anfrage oder Operation in ein Objekt. Das Befehlsmuster trennt die Verantwortung für die Ausgabe von Befehlen und die Verantwortung für die Ausführung von Befehlen und delegiert diese an verschiedene Objekte. Der Befehlsmodus ermöglicht es der anfordernden Partei, unabhängig von der sendenden Partei zu sein, sodass die anfordernde Partei nicht die Schnittstelle der Partei kennen muss, die die Anfrage empfängt, geschweige denn, wie die Anfrage empfangen wird und ob, wann und wie der Vorgang ausgeführt wird wird ausgeführt. Das System unterstützt das Rückgängigmachen von Befehlen.
15. DOLMETSCHER – Ich habe ein „Echtes Buch zum Aufreißen von Mädchen“, das verschiedene Strategien zum Aufreißen von Mädchen enthält, z. B. die Schritte, um westliches Essen zu essen, wie man ins Kino geht usw. Wenn man mit einem Mädchen ausgeht Sie müssen nur einen Interpreter ausführen. Folgen Sie einfach dem obigen Skript und führen Sie es aus.
Dolmetschermodus: Bei einer gegebenen Sprache kann der Dolmetschermodus eine Darstellung ihrer Grammatik definieren und gleichzeitig einen Dolmetscher bereitstellen. Mit diesem Dolmetscher können Kunden Sätze in dieser Sprache dolmetschen. Das Interpreter-Muster beschreibt, wie diese Aussagen mithilfe eines Musterdesigns und einer einfachen Grammatik interpretiert werden. Die im Interpretermuster erwähnte Sprache bezieht sich auf jede Kombination, die jedes Interpreterobjekt interpretieren kann. Im Interpretermodus ist es notwendig, eine hierarchische Struktur von Befehlsklassen zu definieren, die die Grammatik darstellen, also eine Reihe von Kombinationsregeln. Jedes Befehlsobjekt verfügt über eine Interpretationsmethode, die die Interpretation des Befehlsobjekts darstellt. Jede Permutation und Kombination von Objekten in einer Hierarchie von Befehlsobjekten ist eine Sprache.
16. ITERATOR – Ich habe mich in Mary verliebt und ihr trotz allem einen Heiratsantrag gemacht.
Mary: „Wenn du willst, dass ich dich heirate, musst du meinen Bedingungen zustimmen.“
Ich: „Ich werde allen Bedingungen zustimmen, sag es mir einfach.“ Ich: „Ich werde ihn kaufen, ich werde ihn kaufen, gibt es noch mehr?“
Mary: „Ich interessiere mich für diese Villa am See.“
Ich: „Ich werde es kaufen, ich werde es kaufen, gibt es noch mehr?“ ?“
Mary: „Ich fühle mich zu diesem Ferrari-Sportwagen hingezogen“
Mir schwirrte der Kopf saß auf dem Stuhl und biss die Zähne zusammen: „Ich kaufe es, ich kaufe es, gibt es noch mehr?“
„„
Iteratives Untermuster: Das iterative Untermuster ermöglicht den sequentiellen Zugriff auf die Elemente in einer Sammlung, ohne die interne Darstellung der Sammlung offenzulegen. Das Aggregat, das durch das Zusammentreffen mehrerer Objekte entsteht, wird als Aggregation bezeichnet. Ein Aggregationsobjekt ist ein Containerobjekt, das eine Gruppe von Objekten enthalten kann. Das iterative Untermuster kapselt die Iterationslogik in ein separates Unterobjekt, getrennt vom Aggregat selbst. Das iterative Untermuster vereinfacht die Schnittstelle für die Aggregation. Jedes Aggregatobjekt kann ein oder mehrere Iterator-Unterobjekte haben und der Iterationsstatus jedes Iterators kann unabhängig voneinander sein. Der iterative Algorithmus kann unabhängig von der Aggregationsrolle variieren.
17. VERMITTLER – Vier Mädchen spielten Mahjong und konnten nicht herausfinden, wie viel Geld sie sich gegenseitig geben sollten, und habe das Geld anhand ihrer jeweiligen Chipzahlen berechnet Wer Geld verdient hat, hat es mir auch weggenommen, und alles war in Ordnung. Ich habe die Telefonnummern von vier Mädchen bekommen.
Mediator-Muster: Das Mediator-Muster fasst die Art und Weise zusammen, wie eine Reihe von Objekten interagieren, sodass diese Objekte nicht offensichtlich miteinander interagieren müssen. Dadurch können sie lose gekoppelt werden. Wenn sich die Interaktion zwischen einigen Objekten ändert, hat dies keinen unmittelbaren Einfluss auf die Interaktion zwischen anderen Objekten. Stellen Sie sicher, dass diese Effekte unabhängig voneinander geändert werden können. Das Mediator-Muster wandelt Viele-zu-Viele-Interaktionen in Eins-zu-Viele-Interaktionen um. Das Vermittlermuster abstrahiert das Verhalten und die Zusammenarbeit von Objekten und behandelt das kleinräumige Verhalten von Objekten getrennt von den Interaktionen mit anderen Objekten.
18. MEMENTO – Wenn Sie mit mehreren Mädchen gleichzeitig chatten, denken Sie daran, was Sie gerade zu den Mädchen gesagt haben, sonst werden die Mädchen unzufrieden sein, wenn sie es herausfinden. Zum Glück habe ich ein Memo darüber, welches Mädchen Ich habe gerade mit ihm gesprochen. Ich mache eine Kopie von allem, was ich sage, und füge es in mein Memo ein, damit ich meine vorherigen Aufzeichnungen jederzeit überprüfen kann.
Memo-Modus: Memo-Objekt ist ein Objekt, das zum Speichern einer Momentaufnahme des internen Zustands eines anderen Objekts verwendet wird. Der Zweck des Memomusters besteht darin, den Zustand eines Objekts zu erfassen, zu externalisieren und zu speichern, ohne die Kapselung zu zerstören, sodass das Objekt zu einem geeigneten Zeitpunkt in der Zukunft in seinen gespeicherten Zustand zurückversetzt werden kann.
19. BEOBACHTER – Möchten Sie die neuesten MM-Informationen unseres Unternehmens erfahren? Treten Sie einfach der MM-Intelligence-E-Mail-Gruppe bei. Er muss uns nicht einzeln über die neuen Informationen informieren, die er als Abonnenten (Beobachter) veröffentlicht Erhalten Sie die Informationen rechtzeitig
Beobachtermuster: Das Beobachtermuster definiert eine Abhängigkeitsbeziehung mit mehreren Teams, die es mehreren Beobachterobjekten ermöglicht, ein bestimmtes Subjektobjekt gleichzeitig zu überwachen. Wenn dieses Themenobjekt seinen Status ändert, benachrichtigt es alle Beobachterobjekte, sodass diese sich automatisch aktualisieren können.
20. STAAT – Wenn Sie mit einem Mädchen ausgehen, müssen Sie auf seinen Zustand achten. Ihr Verhalten wird sich in verschiedenen Staaten unterscheiden. Wenn Sie sie beispielsweise bitten, heute Abend ins Kino zu gehen, ist sie kein Interesse daran Wenn du sagst: „Da ist was los“, wird ein Mädchen, das dich nicht hasst, sich aber noch nicht in dich verliebt hat, sagen: „Okay, aber kann ich meine Kollegin mitbringen?“, und ein Mädchen, das das schon tut Wenn Sie sich beim Ansehen des Films gut benehmen, können Sie natürlich auch den Status des Mädchens von „Hass“ oder „Abneigung“ in „Gefällt mir“ ändern.
Zustandsmuster: Zustandsmuster ermöglichen es einem Objekt, sein Verhalten zu ändern, wenn sich sein interner Zustand ändert. Das Objekt scheint seine Klasse geändert zu haben. Das Zustandsmuster fasst das Verhalten des untersuchten Objekts in verschiedene Zustandsobjekte ein. Jedes Zustandsobjekt gehört zu einer Unterklasse einer abstrakten Zustandsklasse. Die Absicht des Zustandsmusters besteht darin, einem Objekt zu ermöglichen, sein Verhalten zu ändern, wenn sich sein interner Zustand ändert. Das Zustandsmuster erfordert die Erstellung einer Unterklasse der Zustandsklasse für jeden Zustand, den das System erhalten kann. Wenn sich der Zustand des Systems ändert, ändert das System die ausgewählte Unterklasse.
21, Strategie – Dating verschiedene Arten von MMs mit unterschiedlichen Strategien, einige sind besser, Filme einzuladen, und einige haben gute Auswirkungen auf das Essen von Snacks, einige gehen ins Herz von MMs, ich habe viele Strategien in meinem Toolkit für die Verfolgung von MM.
Strategiemuster: Das Strategiemuster zielt auf eine Reihe von Algorithmen ab und kapselt jeden Algorithmus in eine unabhängige Klasse mit einer gemeinsamen Schnittstelle, sodass sie untereinander ersetzt werden können. Das Strategiemuster ermöglicht eine Änderung des Algorithmus ohne Auswirkungen auf den Client. Das Strategiemuster trennt das Verhalten von der Umgebung. Die Umgebungsklasse ist für die Verwaltung und Abfrage der Verhaltensklasse verantwortlich, und in bestimmten Strategieklassen werden verschiedene Algorithmen bereitgestellt. Da der Algorithmus und die Umgebung unabhängig sind, hat das Hinzufügen, Löschen und Ändern des Algorithmus keine Auswirkungen auf die Umgebung und den Client.

22. VORLAGENMETHODE – Haben Sie den klassischen Artikel „Wie man ein Mädchen davon überzeugt, ins Bett zu gehen“ gelesen? Mädchen erkennen, dass die unveränderlichen Schritte des Schlafengehens in acht Schritte unterteilt sind (Vorlagenmethode): zufällige Begegnung, Eis brechen, Verfolgen, Küssen, Vorspiel, Hands-on, Streicheln und Eintreten. Allerdings ist jeder Schritt anders Situationen. Wie das geht, hängt von Ihrer Anpassungsfähigkeit ab (spezifische Implementierung);
Vorlagenmethodenmuster: Das Vorlagenmethodenmuster bereitet eine abstrakte Klasse vor, implementiert einen Teil der Logik in Form konkreter Methoden und konkreter Konstruktoren und deklariert dann einige abstrakte Methoden, um Unterklassen zu zwingen, die verbleibende Logik zu implementieren. Verschiedene Unterklassen können diese abstrakten Methoden auf unterschiedliche Weise implementieren und somit über unterschiedliche Implementierungen der verbleibenden Logik verfügen. Entwickeln Sie zunächst ein Logik-Framework der obersten Ebene und überlassen Sie die Details der Logik bestimmten Unterklassen.
23. BESUCHER – Der Valentinstag ist da und jedes Mädchen sollte einen Blumenstrauß und eine Karte erhalten. Die von jedem Mädchen gesendeten Blumen sollten jedoch auf ihren persönlichen Merkmalen basieren, und jede Karte sollte auch darauf basieren Ihre persönlichen Eigenschaften kann ich nicht herausfinden, also bitte ich den Floristen und den Besitzer des Geschenkeladens, einen Blumenstrauß basierend auf den Eigenschaften des Mädchens auszuwählen, und überlasse es dem Geschenkeladen Der Eigentümer wählt eine Karte basierend auf den Merkmalen jeder Person aus.
Besuchermuster: Der Zweck des Besuchermusters besteht darin, einige Vorgänge zu kapseln, die auf bestimmte Datenstrukturelemente angewendet werden. Sobald diese Operationen geändert werden müssen, kann die Datenstruktur, die diese Operation akzeptiert, unverändert bleiben. Das Besuchermuster eignet sich für Systeme mit relativ unbestimmten Datenstrukturen. Es entkoppelt die Kopplung zwischen der Datenstruktur und den Operationen, die auf die Struktur einwirken, sodass sich die Menge der Operationen relativ frei entwickeln kann. Das Besuchermuster erleichtert das Hinzufügen neuer Vorgänge durch Hinzufügen einer neuen Besucherklasse. Das Besuchermuster konzentriert verwandte Verhaltensweisen in einem Besucherobjekt, anstatt sie auf Knotenklassen zu verteilen. Wenn Sie das Visitor-Muster verwenden, platzieren Sie so viel Objekt-Browsing-Logik wie möglich in der Visitor-Klasse und nicht in ihren Unterklassen. Das Besuchermuster kann über mehrere Klassenhierarchien hinweg auf Mitgliedsklassen zugreifen, die zu unterschiedlichen Hierarchien gehören.


Das obige ist der detaillierte Inhalt vonDie 23 Designmuster von Dahua PHP bieten hohe Energie und keine störenden Stellen während des gesamten Prozesses. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn