Qu'est-ce que le modèle Java Builder ? Comment y parvenir ? (avec code)
Le contenu de cet article porte sur ce qu'est le modèle de générateur Java ? Comment y parvenir ? (Le code est ci-joint), qui a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
Mode Constructeur
1. Qu'est-ce que le mode Constructeur ?
Builder Pattern utilise plusieurs objets simples pour construire un objet complexe étape par étape.
Une classe Builder construira l'objet final étape par étape. Cette classe Builder est indépendante des autres objets.
Le modèle de construction résout principalement le problème de la création d'un « objet complexe » dans les systèmes logiciels, qui est généralement composé de sous-objets de différentes parties en utilisant un certain algorithme En raison de changements dans les exigences, cet objet complexe Le les parties individuelles d'un objet sont souvent confrontées à des changements drastiques, mais les algorithmes qui les assemblent sont relativement stables .
2. Implémentation spécifique du mode constructeur
Schéma de structure
Quatre rôles en mode constructeur :
Builder : fournit une interface abstraite pour standardiser la construction de chaque composant de l'objet produit. Cette interface spécifie quelles parties de l'objet complexe doivent être créées et n'implique pas la création de composants d'objet spécifiques.
ConcreteBuilder : implémente l'interface Builder pour créer concrètement chaque partie d'un objet complexe pour différentes logiques métier. Une fois le processus de construction terminé, fournissez des exemples du produit.
Directeur : Appelez des constructeurs spécifiques pour créer diverses parties d'objets complexes. Le directeur n'implique pas d'informations sur des produits spécifiques. Il est uniquement responsable de s'assurer que toutes les parties de l'objet sont complètement créées. ou dans un certain ordre.
Produit : L'objet complexe à créer.
Implémentation du code Java
1. Créer une classe d'entité humaine
package com.designpattern.builderPattern; /** * 对象 人 * * @author zhongtao on 2018/9/17 */ public class Human { private String head; private String body; private String hand; private String foot; public String getHead() { return head; } public void setHead(String head) { this.head = head; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getHand() { return hand; } public void setHand(String hand) { this.hand = hand; } public String getFoot() { return foot; } public void setFoot(String foot) { this.foot = foot; } }
2. Créer une interface de constructeur humain
package com.designpattern.builderPattern; /** * 造人接口 规定造人的规范 需要头、身体、手、脚 * * @author zhongtao on 2018/9/17 */ public interface BuilderHuman { void buildHead(); void buildBody(); void buildHand(); void buildFoot(); /** * 返回创建的对象 */ Human createHuman(); }
package com.designpattern.builderPattern; /** * 高个子的人 * * @author zhongtao on 2018/9/17 */ public class TallPersonBuilder implements BuilderHuman { Human human; public TallPersonBuilder() { human = new Human(); } @Override public void buildHead() { human.setHead("普通的头脑"); } @Override public void buildBody() { human.setBody("壮实,高大的身体"); } @Override public void buildHand() { human.setHand("长手"); } @Override public void buildFoot() { human.setFoot("长脚"); } @Override public Human createHuman() { return human; } }
package com.designpattern.builderPattern; /** * 聪明的人 * * @author zhongtao on 2018/9/17 */ public class SmartHumanBuilder implements BuilderHuman { Human human; public SmartHumanBuilder() { human = new Human(); } @Override public void buildHead() { human.setHead("高智商的头脑"); } @Override public void buildBody() { human.setBody("健康的身体"); } @Override public void buildHand() { human.setHand("普通的手"); } @Override public void buildFoot() { human.setFoot("普通的脚"); } @Override public Human createHuman() { return human; } }
package com.designpattern.builderPattern; /** * 管理造人的顺序 BuilderHuman不同,则创建的人不同 * @author zhongtao on 2018/9/17 */ public class HumanDirector { public Human createHumanByDirector(BuilderHuman builderHuman){ builderHuman.buildHead(); builderHuman.buildBody(); builderHuman.buildHand(); builderHuman.buildFoot(); return builderHuman.createHuman(); } }
package com.designpattern.builderPattern; import org.junit.Test; /** * 测试 * * @author zhongtao on 2018/9/17 */ public class BuilderPatternTest { /** * 测试建造者模式 */ @Test public void test() { HumanDirector humanDirector = new HumanDirector(); //创建高个子的人 Human humanByDirector = humanDirector.createHumanByDirector(new TallPersonBuilder()); System.out.println(humanByDirector.getHead()); System.out.println(humanByDirector.getBody()); System.out.println(humanByDirector.getHand()); System.out.println(humanByDirector.getFoot()); System.out.println("------简单的分割线------"); //创建聪明的人 Human smartHuman = humanDirector.createHumanByDirector(new SmartHumanBuilder()); System.out.println(smartHuman.getHead()); System.out.println(smartHuman.getBody()); System.out.println(smartHuman.getHand()); System.out.println(smartHuman.getFoot()); } }
- Builder est indépendant et facile à développer.
- Rises détaillés faciles à contrôler.
- Les produits doivent avoir quelque chose en commun et la portée est limitée.
- Si les changements internes sont complexes, il y aura de nombreux cours de construction.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4
