Heim > Web-Frontend > js-Tutorial > JavaScript-Entwurfsmuster, Serie Drei: Builder-Muster

JavaScript-Entwurfsmuster, Serie Drei: Builder-Muster

不言
Freigeben: 2018-04-02 13:58:42
Original
1404 Leute haben es durchsucht

Dieser Artikel stellt Ihnen die dritte Reihe von JavaScript-Entwurfsmustern vor: Interessierte Freunde können einen Blick auf

Builder-Muster

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.

Vorteile

  • 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.

Anwendbare Szenarien

Die zu generierenden Objekte haben komplexe interne Strukturen und die internen Eigenschaften selbst hängen voneinander ab


Builder-Mustercode Es gibt vier Hauptteile zur Implementierung des Builder-Musters

: Produktproduktklasse, Builder-Klasse, Director-Klasse und Client.

Der Hauptprozess ist:
  1. Kunden stellen ihre Anforderungen.

  2. Der Kommandant weist den Bauunternehmer an, jeden Teil der Anforderung entsprechend den Bedürfnissen des Benutzers zu erfüllen.

  3. 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 = ''
}
Nach dem Login kopieren

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;
    }
}
Nach dem Login kopieren

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();
    } 
}
Nach dem Login kopieren

Schließlich die Nutzungsmethode:

/**
 *    使用方法
 */

var builder = new carBuilder();
var director = new director();
director.action(builder);
var Car = builder.getCar();
console.log(Car);
Nach dem Login kopieren

Der Endkunde erhält das Auto über die getCar-Methode und muss das nicht kennen Details. Konstruktionsdetails.


Zusammenfassung

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage