Beschreibung des Builder -Modus
1. Trennen Sie die Konstruktion eines komplexen Objekts von seiner Darstellung, damit der gleiche Erstellungsprozess unterschiedliche Darstellungen haben kann. Dies wird als Builder -Muster bezeichnet.
2. Beschreibung in objektorientierter Sprache, Hauptrollen:
1>. Die Builder Interface -Klasse definiert den Builder [Worker], eine einheitliche und operative Verhaltensweise, die ein komplexes Strukturobjekt darstellt.
2>. Concretebuilder wird verwendet, um Instanzobjekte verschiedener Formen von Builder zu erstellen, um verschiedene Darstellungen des Builders darzustellen.
3>. Direktor Dieser Kommandant wird verwendet, um den Ausführungsprozess und die Form der Builder -Instanz zu leiten, die verwendet wird, um sich von der Erbauerinstanzleistung zu trennen, und wird verwendet, um die Builder -Instanz zu leiten, um Produktergebnisse in einer bestimmten Regelreihenfolge zu erstellen und zu generieren.
4>. Die durch resultObject erstellten Ergebnisse generieren ein Ergebnisobjekt. Dies ist das Ergebnis, das der spezifische Schöpfer auf der Grundlage der Leitlinien des Direktors erstellt hat.
3. Das Builder -Modell ist eigentlich ein Kommandant, ein Bauunternehmer und ein Kunde, der den Kommandanten benutzt, um den jeweiligen Bauherr zur Arbeit anzurufen und Ergebnisse des jeweiligen Bauherrn zu zeichnen.
4. Builder -Modus, simuliertes Szenario: [Siehe ein gutes Beispiel, das die Beschreibung des Builder -Modus veranschaulicht]
Es wird gesagt, dass ein Familienmitglied ein Haus bauen möchte, aber der Besitzer des Hauses oder anderer Personen in der Familie nicht weiß, wie man ein Haus baut, also muss er ein paar Arbeiter einstellen. Das Team des Hausgebäudes muss einen Vorarbeiter haben, um ein Haus gemäß den Ideen des Besitzers zu bauen. Der Foreman entwirft und verlangt die Arbeitnehmer, das zu tun, was sie entsprechend den Anforderungen des Eigentümers tun.
Der Vorarbeiter sagte, dass der erste Schritt darin besteht, das gesamte Skelett des Hauses zu bauen. Der zweite Schritt besteht darin, das Schlafzimmer zu bauen, der dritte Schritt besteht darin, die Küche zu dekorieren, der vierte Schritt besteht darin, das Wohnzimmer zu bauen und der fünfte Schritt besteht darin, ...
Der Vorarbeiter tut nichts, aber der spezifische Bauunternehmer muss dies entsprechend den Anforderungen des Vorarbeiter tun. Die erste und zweite Schritte werden bis zum Abschluss des gesamten Hauses gebaut.
Der Schöpfer muss über alle Fähigkeiten verfügen, um dieses Haus zu schaffen, nämlich Skelette zu bauen, das Schlafzimmer usw. zu dekorieren usw., dh das, was der Bauherr tut oder Fähigkeiten haben, muss größer oder gleich dem sein, was der Kommandant benötigt, oder die Fähigkeiten haben;
Das heißt, der Kommandant ist Organisator, und der Baumeister bietet Fähigkeiten.
5. In einer schwachen Sprache wie JavaScript, wenn es keine Schnittstelle gibt, ignorieren Sie die Schnittstellendefinitionsschicht, erstellen Sie direkt einen bestimmten Bauunternehmer und erstellen Sie dann eine Leitklasse, die den Bauherr hin und her aufruft.
Instanzquellcode
1. Arbeiterbauer X:
Die Codekopie lautet wie folgt:
Funktion WorkerBuilder () {
this.workone = function () {
// Bauen Sie ein Skelett
}
this.worktwo = function () {
// Bauen Sie ein Schlafzimmer
}
this.workThree = function () {
// eine Küche bauen
}
this.workfour = function () {
// ein Wohnzimmer bauen
}
// ...
this.getResult = function () {
// Bauen Sie ein Haus
var House = New House ();
//house.houseframe ...
Rückkehrhaus;
}
}
Workbuilder ist ein spezifischer Baumeister, Workone, zwei ist was zu tun, Skelette zu bauen usw.;
Natürlich kann Workbuilder noch einige weitere aufgebaut werden, um anzuzeigen, dass Arbeitnehmer für jeden Job unterschiedliche Methoden ausführen. Aber der Arbeitsinhalt ist der gleiche;
2. Kategorie Commander
Die Codekopie lautet wie folgt:
Funktion Director () {
this.construct = Funktion (Builder) {
Builder.workone ();
Builder.worktwo ();
Builder.WorkThree ();
Builder.workfour ();
// ...
// Der obige Inhalt kann in Sequenz festgelegt werden, und die Arbeitselemente können ebenfalls festgelegt werden.
}
}
Die Leitlinienmethode in der Kategorie Commander -Kategorie enthält Rückrufreferenzen auf den Bauunternehmer, einschließlich mehrerer oder aller Arbeitsinhalte des Bauherrn. Der Kommandant organisiert und arrangiert, was die Bauhersteller tun müssen.
3. Produkthaus
Die Codekopie lautet wie folgt:
Funktion House () {
this.houseframe = '';
this.room = '';
this.kitchen = '';
this.livingroom = '';
// ...
}
4.. Wie man benutzt
Die Codekopie lautet wie folgt:
var builder = new Workbuilder ();
var Director = neuer Director ();
Director.Construct (Builder);
var House = builder.getResult ();
Der vierte Schritt ist, dass die gesamte Verwendung dem Kunden entspricht: dem Besitzer des Hauses. Der Eigentümer bittet den Direktor Foreman, das Haus zu bauen, aber der Vorarbeiter tut nichts, so dass er den Bauherrn anweist, das Kind zu bauen, und schließlich erhält der Besitzer das gebaute Haus vom Arbeiter.
Andere Anweisungen
Das Builder -Modell ist besser geeignet, für das der Inhalt [Abstract] komplex ist und die tatsächlichen Szenen unterschiedlich sind, z. B. die Situation, in der der Arbeitsinhalt oder die Reihenfolge inkonsistent ist. Zum Beispiel der tägliche Lebensprozess jeder Person und Szenen, die den obigen Beispielen ähneln; Durch die Ausbilderschicht ist es möglich, die Umgebung zu verringern, in der viele ähnliche Arbeitsplätze jedoch die Reihenfolge der Arbeitsregeln inkonsistent sind. Es kann die Bauabstraktion der tatsächlichen Objekte erheblich verringern;