Supposons que nous devions construire une maison : le processus consiste à empiler, à construire des murs et à couvrir. Il existe différents types de maisons, telles que les maisons ordinaires, les immeubles de grande hauteur et les villas. Bien que le processus soit le même pour tous les types de maisons, les exigences ne sont pas les mêmes. 3) Veuillez rédiger un programme pour répondre aux exigences.
L'idée traditionnelle doit se présenter sous la forme du diagramme de classes suivant. .
L'avantage de cette méthode d'écriture est qu'elle est plus facile à comprendre et à utiliser.
Les inconvénients sont : la structure du programme conçue est trop simple, aucun objet de couche de cache n'est conçu et le programme ne peut pas être étendu et correctement maintenu. En d'autres termes, ce schéma de conception encapsule le produit (c'est-à-dire : la maison) et le processus de création du produit (c'est-à-dire : le processus de construction de la maison), et le couplage est amélioré.
Solution : Découpler le produit et le processus de construction du produit => Modèle de constructeur.
Builder Pattern (Builder Pattern), également appelé générateur de modèle, est un modèle de construction d'objets qui peut résumer le processus de construction d'objets complexes (catégorie abstraite), de sorte que différentes méthodes d'implémentation de ce processus abstrait peuvent construire des objets avec différentes performances (propriétés)
Le modèle de constructeur vous permet de créer un objet complexe étape par étape. objets uniquement en spécifiant leur type et leur contenu. Les utilisateurs n'ont pas besoin de connaître les détails de construction spécifiques à l'intérieur. Rôle :
Produit (rôle du produit) : Un objet produit spécifique.
Builder (Abstract Build Author) : Créez une interface/classe abstraite spécifiée par chaque composant d'un objet Product
ConcreteBuilder (concrete builder) : implémente l'interface, construit et assemble chaque composant # 🎜🎜#
3.Modèle Builder dans JDK
L'interface annexe en définit plusieurs. Une méthode append (méthode abstraite), c'est-à-dire Appendable est un constructeur abstrait et définit une méthode abstraite, elle ne peut tout simplement pas être instanciée.
StringBuilder agit en tant que commandant et constructeur spécifique. L'implémentation de la méthode de construction est complétée par AbstractStringBuilder, et StringBuilder hérite de AbstractStringBuilder. 4. Résumé du modèle BuilderLe client (le programme utilisateur) n'a pas besoin de connaître le composition interne des détails du produit, dissocier le produit lui-même du processus de création de produit, de sorte que le même processus de création puisse créer différents objets de produit.
Chaque constructeur de béton est relativement indépendant et n'a rien à voir avec d'autres constructeurs de béton, il est donc facile de remplacer les constructeurs de béton ou d'ajouter de nouveaux constructeurs de béton, les utilisateurs peuvent obtenir différents objets produit en utilisant différents constructeurs spécifiques.
permet un contrôle plus granulaire sur le processus de création de produits. La décomposition des étapes de création de produits complexes en différentes méthodes rend le processus de création plus clair et facilite l'utilisation de programmes pour contrôler le processus de création.
L'ajout de nouveaux constructeurs concrets ne nécessite pas de modifier le code de la bibliothèque de classes d'origine. La classe Commander est programmée pour la classe des constructeurs abstraits. Le système est facile à étendre et. est conforme au "principe d'ouverture-fermeture"".
Les produits créés par le mode constructeur ont généralement de nombreux points communs et leurs composants sont similaires. Si les différences entre les produits sont importantes, il n'est pas approprié d'utiliser le mode constructeur, son champ d'utilisation est donc soumis à certaines conditions. restrictions.
Si les modifications internes du produit sont complexes, cela peut entraîner la nécessité de définir de nombreuses classes de constructeurs spécifiques pour implémenter de telles modifications, ce qui rend le système très volumineux. Par conséquent, dans ce cas, réfléchissez à l'opportunité de choisir la. modèle de constructeur.
Le modèle d'usine abstrait réalise la création de familles de produits. Une famille de produits est une série de produits : des combinaisons de produits avec différentes dimensions de classification. L'utilisation du modèle d'usine abstrait ne nécessite pas de se soucier du processus de construction, mais uniquement de la nature des produits. produit par quelles usines. Le modèle constructeur nécessite de construire un produit selon un plan spécifié. Son objectif principal est de fabriquer un nouveau produit en assemblant des pièces de rechange.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!