Dieser Artikel stellt Ihnen die dritte Reihe von JavaScript-Entwurfsmustern vor: Interessierte Freunde können einen Blick auf
Builder-Muster (Builder-Muster) werfen Es handelt sich um eine Art Erstellungsmuster, das ein komplexes Objekt zur Konstruktion in mehrere einfache Objekte zerlegt und die komplexe Konstruktionsschicht von der Präsentationsschicht trennt, sodass derselbe Konstruktionsprozess unterschiedliche Darstellungen erstellen kann Muster.
Das Builder-Muster weist eine gute Kapselung auf und das Objekt selbst ist vom Konstruktionsprozess entkoppelt.
Der Builder-Modus ist einfach zu erweitern. Bei neuen Anforderungen kann dies durch die Implementierung einer neuen Builder-Klasse erreicht werden.
Die zu generierenden Objekte haben komplexe interne Strukturen und die internen Eigenschaften selbst hängen voneinander ab
: Produktproduktklasse, Builder-Klasse, Director-Klasse und Client.
Kunden stellen ihre Anforderungen.
Der Kommandant weist den Bauunternehmer an, jeden Teil der Anforderung entsprechend den Bedürfnissen des Benutzers zu erfüllen.
Der Bauunternehmer stellt den entsprechenden Teil fertig.
Werfen wir einen Blick auf den entsprechenden Code:
Die Produktkategorie ist ein bearbeitetes leeres Rohbauauto.
/** * 产品类:car 目前需要构建一辆车。 */ function car () { this.name = '', this.number = '', this.wheel = '', this.engine = '' }
Nächster Blick auf die Baumeisterklasse:
/* * 建造者类,里面有专门负责各个部分的工人 */ function carBuilder () { this.nameBuilder = function () { this.name = '很厉害的车' }, this.numberBuilder = function () { this.number = '88888888' }, this.wheelBuilder = function () { this.wheel = '高级橡胶做的轮子' }, this.engineBuilder = function () { this.engine = '很厉害的引擎' }, this.getCar = function () { var Car = new car() Car.name = this.name; Car.number= this.number; Car.wheel = this.wheel; Car.engine = this.engine; return Car; } }
Hier können wir die Arbeiter in jedem Teil und ihre Arbeit sehen, und ihre jeweilige Arbeit wird schließlich in einem Auto zusammengeführt.
Leiterklasse:
/** * 指挥者类,指挥各个部分的工人工作 */ function director () { this.action = function (builder) { builder.nameBuilder(); builder.numberBuilder(); builder.wheelBuilder(); builder.engineBuilder(); } }
Schließlich die Nutzungsmethode:
/** * 使用方法 */ var builder = new carBuilder(); var director = new director(); director.action(builder); var Car = builder.getCar(); console.log(Car);
Der Endkunde erhält das Auto über die getCar-Methode und muss das nicht kennen Details. Konstruktionsdetails.
Das Builder-Muster wird hauptsächlich zum „Verteilen der Konstruktion eines komplexen Objekts“ verwendet und ist leicht zu erweitern. Wenn neue Anforderungen vorliegen, kann dies durch die Implementierung einer neuen Builder-Klasse erreicht werden. Das Builder-Muster entkoppelt das Objekt selbst vom Konstruktionsprozess, sodass wir uns nicht um den spezifischen Konstruktionsprozess kümmern müssen.
Verwandte Empfehlungen:
JavaScript Design Pattern Series One: Factory Pattern
JavaScript Design Pattern Series Two: Singleton Pattern
Das obige ist der detaillierte Inhalt vonJavaScript-Entwurfsmuster, Serie Drei: Builder-Muster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!