Description du mode constructeur
1. Séparez la construction d'un objet complexe de sa représentation afin que le même processus de création puisse avoir des représentations différentes. C'est ce qu'on appelle le motif du constructeur.
2. Description dans un langage orienté objet, rôles principaux:
1>. La classe d'interface du constructeur définit le constructeur [travailleur], une manière de comportement unifiée et opérationnelle, qui représente un objet structurel complexe;
2>. ConcreteBuilder est utilisé pour créer des objets d'instance de diverses formes de constructeur pour représenter différentes représentations de Builder;
3>. Directeur Ce commandant est utilisé pour guider le processus d'exécution et la forme de l'instance de générateur, qui est utilisé pour se séparer des performances de l'instance du constructeur, et est utilisée pour guider l'instance Builder pour créer et générer des résultats du produit dans un certain ordre de règles;
4>. Les résultats créés par resultObject générent un objet de résultat; C'est le résultat créé par le créateur spécifique basé sur les conseils du réalisateur;
3. Le modèle du constructeur est en fait un commandant, un constructeur et un client qui utilise le commandant pour appeler le constructeur spécifique pour travailler et peut tirer des résultats du constructeur spécifique;
4. Mode Builder, Scénario simulé: [Voir un bon exemple qui illustre la description du mode Builder]
On dit qu'un membre de la famille veut construire une maison, mais le propriétaire de la maison ou d'autres personnes de la famille ne sait pas comment construire une maison, il doit donc embaucher quelques travailleurs. L'équipe du bâtiment de la maison doit avoir un contremaître pour construire une maison selon les idées du propriétaire. Le contremaître conçoit et oblige les travailleurs à faire ce qu'ils font selon les exigences du propriétaire;
Le contremaître a déclaré que la première étape consiste à construire tout le squelette de la maison, la deuxième étape consiste à construire la chambre, la troisième étape consiste à décorer la cuisine, la quatrième étape consiste à construire le salon, et la cinquième étape consiste à ...
Le contremaître ne fait rien, mais le constructeur spécifique doit le faire en fonction des exigences du contremaître. Les première et deuxième étapes sont construites jusqu'à la fin de toute la maison;
Le Créateur doit avoir toutes les compétences nécessaires pour créer cette maison, à savoir, construire des squelettes, décorer la chambre, etc., c'est-à-dire ce que le constructeur fait ou a des capacités, doit être supérieur ou égal à ce que le commandant doit faire ou a des capacités;
C'est-à-dire que le commandant est un organisateur, et le constructeur offre des compétences;
5. Dans un langage faible comme JavaScript, s'il n'y a rien de tel qu'une interface, ignorez la couche de définition d'interface, créez directement un constructeur spécifique, puis construisez une classe de guidage pour appeler le constructeur;
Code source d'instance
1. Builder des travailleurs x:
La copie de code est la suivante:
fonction workerbuilder () {
this.workOne = function () {
// construire un squelette
}
this.worktwo = function () {
// Construisez une chambre
}
this.workTe = function () {
// Construisez une cuisine
}
this.workFour = function () {
// Construisez un salon
}
// ...
this.getResult = function () {
// Construisez une maison
var house = new house ();
//house.houseframe ...
maison de retour;
}
}
L'ouvrier est un constructeur spécifique, WorkOne, deux est ce qu'il faut faire, construire des squelettes, etc.;
Bien sûr, le travailleur peut être construit plusieurs autres pour indiquer que les travailleurs effectuent différentes méthodes pour chaque travail; Mais le contenu de travail est le même;
2. Catégorie de commandant
La copie de code est la suivante:
Fonction Director () {
this.construct = function (builder) {
builder.workOne ();
builder.worktwo ();
builder.workThere ();
builder.workFour ();
// ...
// Le contenu ci-dessus peut être défini en séquence et les éléments de travail peuvent également être définis.
}
}
La méthode d'orientation dans la catégorie Commander comprend des références de rappel au constructeur, y compris plusieurs ou la totalité du contenu de travail du constructeur; Le commandant organise et organise ce que les travailleurs du constructeur doivent faire;
3. Maison de produit
La copie de code est la suivante:
Function House () {
this.houseframe = '';
this.room = '';
this.kitchen = '';
this.livingroom = '';
// ...
}
4. Comment utiliser
La copie de code est la suivante:
var builder = new Workbuilder ();
VAR Director = New Director ();
Director.Construct (constructeur);
var house = builder.getResult ();
La quatrième étape est que la totalité de l'utilisation est équivalente au client: le propriétaire de la maison. Le propriétaire demande au réalisateur de construire la maison, mais le contremaître ne fait rien, alors il ordonne au travailleur du constructeur de construire l'enfant, et finalement le propriétaire obtient la maison construite auprès du travailleur;
Autres instructions
Le modèle de générateur est plus adapté pour lequel le contenu [résumé] est complexe, et les scènes réelles sont différentes, comme la situation où le contenu ou l'ordre du travail est incohérent; Par exemple, le processus de vie quotidien de chaque personne et des scènes similaires aux exemples ci-dessus; Grâce à la couche d'instructeur, il est possible de réduire l'environnement dans lequel de nombreux lieux de travail similaires, mais l'ordre de travail des règles de travail est incohérent; Il peut réduire considérablement l'abstraction de construction des objets réels;