ÜberblickDas 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:
Modusfunktion:
Notiz:
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-ImplementierungBevor 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:
|
<<: So installieren Sie die PHP7 Redis-Erweiterung auf CentOS7
>>: So erstellen Sie ein Dateisystem in einer Linux-Partition oder einem logischen Volume
CSS-Schreibreihenfolge 1. Positionsattribute (Pos...
Wenn Sie mit dem Erlernen von Linux beginnen, müs...
Dieser Artikel basiert auf der CentOS 7.3-Systemu...
Hintergrund: Hoch- und Herunterladen von Dateien ...
React unterscheidet sich von Vue. Es implementier...
Die unbedeutende flex-basis hat bei der kleinen F...
Ich weiß nicht, ob Ihnen beim Erstellen einer Webs...
Inhaltsverzeichnis 1. Gojs-Implementierung 1. Zei...
Inhaltsverzeichnis Szenario Kernthemen Statusüber...
Inhaltsverzeichnis 1. Einige Punkte, die Sie beac...
1. Einführung in Prometheus Prometheus ist eine O...
Teil 1: Grundlagen 1. Im Gegensatz zu Pseudoklass...
MySQL 8 bringt völlig neue Erfahrungen mit sich, ...
Flex-Grundkonzepte Flex-Layout (Flex ist die Abkü...
Vorwort Jeder sollte mit der Watch-API in vue2 ve...