Définition du modèle du constructeur: séparez la construction d'un objet complexe de sa représentation, afin que le même processus de construction puisse créer différentes représentations.
Le modèle de générateur est de créer un objet complexe étape par étape, ce qui permet aux utilisateurs de les construire simplement en spécifiant le type et le contenu des objets complexes. Les utilisateurs ne connaissent pas les détails de construction interne spécifiques. Le mode Builder est très similaire au mode d'usine abstrait.
Pourquoi utiliser le mode Builder
Il s'agit de découpler le processus de construction d'objets complexes à partir de ses composants. Remarque: il s'agit du processus de découplage et des composants.
Parce qu'un objet complexe a non seulement de nombreuses grandes quantités de composants, tels que des voitures, il existe de nombreuses pièces: roues, volant, moteur et diverses petites pièces, etc. Il y a beaucoup de pièces, mais c'est bien plus que celles-ci. Pour assembler ces pièces dans une voiture pour les automobiles, ce processus d'assemblage est également très compliqué (nécessite une bonne technologie d'assemblage), et le modèle du constructeur est de séparer les composants et le processus d'assemblage.
Comment utiliser le mode Builder
Supposons d'abord qu'un objet complexe est composé de plusieurs composants.
Tout d'abord, une interface est nécessaire qui définit comment créer divers composants d'objets complexes:
La copie de code est la suivante:
Public Interface Builder {
// Créer le composant A, par exemple, créer des roues de voiture
void buildParta ();
// Créer le composant B, comme la création d'un volant de voiture
void buildPartB ();
// Créer un composant C, comme la création d'un moteur de voiture
void buildPartc ();
// Renvoie le résultat de l'assemblage final (retour à la dernière voiture assemblée)
// Le processus d'assemblage du produit fini n'est pas effectué ici, mais est transféré à la classe du directeur ci-dessous.
// Cela réalisera le processus de découplage et les composants
Produit getResult ();
}
Utilisez le directeur pour construire le dernier objet complexe, et l'interface de générateur ci-dessus résume comment créer des composants (les objets complexes sont composés de ces composants), c'est-à-dire comment le contenu du directeur est de savoir comment assembler enfin les composants en produits finis:
La copie de code est la suivante:
Directeur de classe publique {
constructeur privé;
Directeur public (constructeur constructeur) {
this.builder = builder;
}
// Enfin, Parta PartB PartC est utilisé pour former un objet complexe
// C'est le processus d'assemblage du volant et du moteur de roue dans une voiture
Construction publique vide () {
builder.buildParta ();
builder.buildPartb ();
builder.buildPartc ();
}
}
La mise en œuvre spécifique de Builder Concretebuilder:
1. Construire ou assembler les composants du produit en remplissant le constructeur d'interface;
2. Définissez et clarifiez les choses spécifiques qu'elle veut créer;
3. Fournissez une interface qui peut réagir le produit.
La copie de code est la suivante:
classe publique Concretebuilder implémente le constructeur {
Partie parta, partb, partc;
public void buildparta () {
// voici le code spécifique de la façon de construire parta
};
public void buildPartb () {
// Voici le code spécifique de la façon de construire PartB
};
public void buildPartc () {
// Voici le code spécifique de la façon de construire PartB
};
produit public getResult () {
// Retour au résultat de l'assemblage final
};
}
Objet complexe: Produit:
La copie de code est la suivante:
Produit d'interface publique {}
Composants des objets complexes:
La copie de code est la suivante:
Partie d'interface publique {}
Voyons comment appeler le mode constructeur:
La copie de code est la suivante:
ConcreteBuilder Builder = new ConcreteBuilder ();
Directeur directeur = nouveau directeur (constructeur);
Director.Construct ();
Produit produit = builder.getResult ();
Application en mode générateur
Dans une utilisation réelle de Java, nous utilisons souvent le concept de «pool».
"Pool" est en fait un morceau de mémoire. L'utilisation de la mémoire sera améliorée. Modifiez la classe Director en mode Builder pour diagnostiquer quel composant le "membre de rupture" est cassé, puis réparez ce composant.