Maison > Java > JavaBase > Caractéristiques et scénarios d'application du modèle de constructeur Java

Caractéristiques et scénarios d'application du modèle de constructeur Java

angryTom
Libérer: 2019-11-26 15:43:41
avant
4139 Les gens l'ont consulté

Caractéristiques et scénarios d'application du modèle de constructeur Java

Mode Constructeur

Définition et caractéristiques du mode

Définition du modèle Builder : fait référence à la séparation de 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. Ce modèle de conception est appelé modèle Builder. Il décompose un objet complexe en plusieurs objets simples puis le construit étape par étape. Il sépare le changement de l'immuabilité, c'est-à-dire que les composants du produit restent inchangés, mais chaque partie peut être sélectionnée de manière flexible.

Les principaux avantages de ce modèle sont les suivants :

Chaque constructeur spécifique est indépendant les uns des autres, ce qui est propice à l'expansion du système. Le client n'a pas besoin de connaître les détails de la composition interne du produit, ce qui facilite le contrôle détaillé des risques.

Les inconvénients sont les suivants :

Les composants du produit doivent être les mêmes, ce qui limite son champ d'utilisation. Si les modifications internes du produit sont complexes, ce modèle ajoutera de nombreuses classes de constructeur.

Le mode constructeur et le mode usine ont des objectifs différents : le mode constructeur se concentre sur le processus d'assemblage des composants, tandis que le mode méthode usine se concentre davantage sur le processus de création de composants, mais les deux peuvent être utilisés en combinaison. .

(Vidéo recommandée : vidéo Java tutoriel)

Structure et implémentation du modèle

Le modèle Builder est composé de celui-ci se compose de quatre éléments : le produit, le constructeur abstrait, le constructeur concret et le commandant. Analysons maintenant sa structure de base et sa méthode de mise en œuvre.

1. Structure du pattern

Les principaux rôles du pattern Builder sont les suivants.

Rôle du produit (Product) : Il s'agit d'un objet complexe contenant plusieurs composants, et ses composants individuels sont créés par des constructeurs spécifiques. Constructeur abstrait (Builder) : il s'agit d'une interface qui contient des méthodes abstraites pour créer divers sous-composants d'un produit, et contient généralement également une méthode getResult() qui renvoie des produits complexes. Concrete Builder : Implémente l'interface Builder pour compléter les méthodes de création spécifiques de chaque composant d'un produit complexe. Directeur : il appelle les méthodes de construction et d'assemblage des composants dans l'objet constructeur pour terminer la création d'objets complexes. Le directeur n'implique pas d'informations spécifiques sur le produit.

Le schéma de structure est le suivant :

Caractéristiques et scénarios dapplication du modèle de constructeur Java

2) Mise en œuvre du patron

(1) Produit. rôle : Un objet complexe contenant plusieurs composants.

public class Product {
    private String partA;
    private String partB;
    private String partC;
    public void setPartA(String partA) {
        this.partA = partA;
    }
    public void setPartB(String partB) {
        this.partB = partB;
    }
    public void setPartC(String partC) {
        this.partC = partC;
    }
    public void show() {
        //显示产品的特性
    }
}
Copier après la connexion

(2) Générateur abstrait : contient des méthodes abstraites pour créer divers sous-composants du produit.

public abstract class Builder {
    //创建产品对象
    protected Product product = new Product();
    public abstract void buildPartA();
    public abstract void buildPartB();
    public abstract void buildPartC();
    //返回产品对象
    public Product getResult() {
        return product;
    }
}
Copier après la connexion

(3) Constructeur concret : implémente l'interface du constructeur abstrait.

public class ConcreteBuilder extends Builder {
    public void buildPartA() {
        product.setPartA("建造 PartA");
    }
    public void buildPartB() {
        product.setPartA("建造 PartB");
    }
    public void buildPartC() {
        product.setPartA("建造 PartC");
    }
}
Copier après la connexion

(4) Commander : Appelez des méthodes dans le constructeur pour terminer la création d'objets complexes.

public class Director {
    private Builder builder;
    public Director(Builder builder) {
        this.builder = builder;
    }
    //产品构建与组装方法
    public Product construct() {
        builder.buildPartA();
        builder.buildPartB();
        builder.buildPartC();
        return builder.getResult();
    }
}
Copier après la connexion

(5) Scénarios d'application du client

public class Client {
    public static void main(String[] args) {
        Builder builder = new ConcreteBuilder();
        Director director = new Director(builder);
        Product product = director.construct();
        product.show();
    }
}
Copier après la connexion

modèle

Le modèle de constructeur crée des objets complexes et ses produits Les pièces individuelles sont souvent confrontées à des changements drastiques , mais l'algorithme qui les combine est relativement stable, il est donc généralement utilisé dans les situations suivantes.

L'objet créé est plus complexe et se compose de plusieurs composants. Chaque composant est confronté à des changements complexes, mais la séquence de construction entre les composants est stable. Les algorithmes utilisés pour créer des objets complexes sont indépendants des composants de l'objet et de la manière dont ils sont assemblés, c'est-à-dire que le processus de construction et la représentation finale du produit sont indépendants.

Cet article provient du site Web php chinois, colonne tutoriel Java, bienvenue pour apprendre !

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal