So implementieren Sie das Builder-Muster in Javascript

So implementieren Sie das Builder-Muster in Javascript

Überblick

Das Builder-Muster ist ein relativ einfaches Entwurfsmuster und gehört zu den Erzeugungsmustern.

Definition: Zerlegen Sie ein komplexes Objekt zur Konstruktion in mehrere einfache Objekte und trennen Sie die komplexe Konstruktionsebene von der Präsentationsebene, sodass im selben Konstruktionsprozess unterschiedliche Präsentationsmodi erstellt werden können.

Vorteil:

  • Das Builder-Muster verfügt über eine bessere Kapselung und die Prozesse der Objekterstellung und -konstruktion sind entkoppelt.
  • Das Builder-Muster lässt sich leicht erweitern. Wenn wir es erweitern müssen, können wir dies über einen neuen Builder tun.

Modusfunktion:

  • Schrittweises Erstellen eines komplexen Objekts
  • Entkoppeln Sie den Verpackungsprozess von der spezifischen Erstellung der Komponenten
  • Sie müssen sich keine Gedanken über die Montage der Komponenten machen

Notiz:

  • Muss über eine stabile Algorithmusunterstützung verfügen
  • Die Verarbeitungstechnologie ist sichtbar, sodass die Reichen jederzeit hingehen und sich ansehen können, wie das Haus gebaut wird.

Umgangssprachliche Erklärung:

Ein reicher Mann möchte ein Haus bauen. Er muss nur einen Bauunternehmer finden, der dann ein Bauteam für den Hausbau zusammenstellt. Er muss nicht einzeln Arbeiter finden, um ein Bauteam zusammenzustellen und mit dem Bau zu beginnen. Der Bauunternehmer kennt die Bedürfnisse des reichen Mannes und weiß auch, wo er Arbeiter für ein Bauteam findet. Die Arbeiter können direkt arbeiten, wodurch der reiche Mann die Kosten für die direkte Kommunikation mit den Arbeitern spart. Der reiche Mann muss nicht wissen, wie man ein Haus baut. Er muss nur in der Lage sein, das Haus am Ende zu inspizieren.

Code-Implementierung

Bevor wir den Code schreiben, analysieren wir ihn zunächst:

1. Das Ergebnis ist ein Haus

2. Der Auftragnehmer ruft die Arbeiter zusammen, um mit der Arbeit zu beginnen, und er muss sich über das konkrete Großprojekt der Arbeiter im Klaren sein.

3. Arbeiter sind Hausbauer, die Schlafzimmer, Wohnzimmer und Küchen bauen können.

4. Der Bauunternehmer ist nur eine Schnittstelle. Er befiehlt anderen nur, ein Haus zu bauen, aber er selbst muss nichts tun.

Funktion Fangzi(){
    dies.woshi = "";
    diese.kette = "";
    dies.chufang = "";
}

Funktion Baogongtou(){
    dies.jianfangzi = Funktion(gongren){
        gongren.jian_woshi();
        gongren.jian_keting();
        gongren.jian_chufang();
    }
}

Funktion Gongren(){
    dies.jian_woshi = Funktion(){
        console.log("Das Schlafzimmer ist gebaut!");
    }

    dies.jian_keting = Funktion(){
        console.log("Das Wohnzimmer ist gebaut!");
    }

    dies.jian_chufang = Funktion(){
        console.log("Die Küche ist gebaut!");
    }

    dies.wangong = Funktion(){
        var fangzi = neues Fangzi();
        fangzi.woshi = "ok";
        fangzi.keting = "ok";
        fangzi.chufang = "ok";
        Fangzi zurückgeben;
    }
}
lass gongren = neues Gongren();
lass baogongtou = neues Baogongtou();
//Das Schlafzimmer ist fertig!
//Das Wohnzimmer ist gebaut!
//Die Küche ist gebaut!
baogongtou.jianfangzi(gongren);
var my_fangzi = gongren.wangong();
/*
Fangzi =
       Chufang: „OK“
       Kauf: "ok"
       woshi: „OK“
       }
*/
Konsole.log(my_fangzi);

Im obigen Code können wir sehen, dass Gongren() den spezifischen Bauprozess enthält, also die spezifischen Dinge, die zu tun sind. Fangzi() ist am Anfang leer, ohne Wohnzimmer, Küche oder Schlafzimmer. Baogongtou() gibt nur an, dass ein Haus gebaut werden kann, und übergibt dann die Worker-Methode, um den Worker aufzurufen, der den Bau durchführt. Wenn die Worker-Methode ausgeführt wird, ist der Bau abgeschlossen und das Haus wird übergeben. Instanziieren Sie die Fangzi()-Methode in einer neuen Methode und weisen Sie sie in der neuen Methode neu zu.

Oben finden Sie Einzelheiten zur Implementierung des Builder-Musters mit Javascript. Weitere Informationen zum Javascript-Builder-Muster finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • JavaScript-Entwurfsmuster – Analyse der Prinzipien und Anwendungsbeispiele des Builder-Musters
  • Beispiel-Tutorial zum JavaScript Design Patterns Builder-Muster
  • JavaScript-Entwurfsmuster, klassisches Builder-Muster
  • Analyse grundlegender Anwendungsbeispiele des JS-Builder-Modus
  • Vertieftes Verständnis der JavaScript-Reihe (27): Detaillierte Erläuterung des Builder-Musters im Entwurfsmuster
  • Einführung in das JavaScript Design Pattern Builder-Muster
  • JS-Entwurfsmuster: Eine kurze Analyse der Definition und Implementierung des Factory-Musters
  • JS-Entwurfsmuster: Eine kurze Analyse der Definition und Implementierung des Singleton-Musters
  • JavaScript-Designmuster – Prinzipien des Besuchermusters und Analyse von Verwendungsbeispielen
  • JavaScript-Entwurfsmuster – Prinzipien und Anwendungsbeispielanalyse des Template-Methoden-Musters

<<:  So installieren Sie die PHP7 Redis-Erweiterung auf CentOS7

>>:  So erstellen Sie ein Dateisystem in einer Linux-Partition oder einem logischen Volume

Artikel empfehlen

CSS-Schreibstandards und -Reihenfolge teilen [für alle empfohlen]

CSS-Schreibreihenfolge 1. Positionsattribute (Pos...

Eine detaillierte Einführung in die Linux-Verzeichnisstruktur

Wenn Sie mit dem Erlernen von Linux beginnen, müs...

So installieren Sie MySQL und Redis in Docker

Dieser Artikel basiert auf der CentOS 7.3-Systemu...

Implementierung von React Routing Guard (Routing-Interception)

React unterscheidet sich von Vue. Es implementier...

Lösung für das Textüberlaufproblem auf CSS-Flex-Basis

Die unbedeutende flex-basis hat bei der kleinen F...

Lösung zum Einfügen eines Formulars mit einer Leerzeile oben und unten

Ich weiß nicht, ob Ihnen beim Erstellen einer Webs...

Gojs implementiert Ameisenlinien-Animationseffekt

Inhaltsverzeichnis 1. Gojs-Implementierung 1. Zei...

Entwerfen Sie einen Datensammler mit Vue

Inhaltsverzeichnis Szenario Kernthemen Statusüber...

Allgemeine Shell-Skriptbefehle und zugehöriges Wissen unter Linux

Inhaltsverzeichnis 1. Einige Punkte, die Sie beac...

Tiefes Verständnis der Verwendung von ::before/:before und ::after/:after

Teil 1: Grundlagen 1. Im Gegensatz zu Pseudoklass...

Neues CSS3-Layout: ausführliche Flex-Erklärung

Flex-Grundkonzepte Flex-Layout (Flex ist die Abkü...

Eine kurze Analyse der Verwendung von watchEffect in Vue3

Vorwort Jeder sollte mit der Watch-API in vue2 ve...