建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。

题目

写情书,分为几个步骤:

  1. 称呼对方
  2. 称赞对方
  3. 表白
  4. 约会交流

Contend类主要包含,写情书的步骤

public class Contend {private String askName;public String getAskName() {return askName;}public void setAskName(String askName) {this.askName = askName;}public String getPairse() {return pairse;}public void setPairse(String pairse) {this.pairse = pairse;}public String getExpress() {return express;}public void setExpress(String express) {this.express = express;}public String getCommunication() {return communication;}public void setCommunication(String communication) {this.communication = communication;}private String pairse;private String express;private String communication;}

Builder类创建对象

public interface Builder {void buildAskName();void buildParise();void buildExpress();void buildCommunication();Contend createContent();}

BoyBuilder类实例化创建对象


//具体的builder类
public class BoyBuilder implements Builder{private Contend Boycontend;public BoyBuilder(){this.Boycontend = new Contend();}@Overridepublic void buildAskName() {// TODO Auto-generated method stubthis.Boycontend.setAskName("BOY称呼对方");System.out.println("BOY称呼对方");}@Overridepublic void buildCommunication() {// TODO Auto-generated method stubthis.Boycontend.setPairse("BOY赞美对方");System.out.println("BOY赞美对方");}@Overridepublic void buildExpress() {// TODO Auto-generated method stubthis.Boycontend.setExpress("BOY表白");System.out.println("BOY表白");}@Overridepublic void buildParise() {// TODO Auto-generated method stubthis.Boycontend.setCommunication("BOY约会");System.out.println("BOY约会");}@Overridepublic Contend createContent() {// TODO Auto-generated method stubreturn this.Boycontend;}}

ManBuilder具体实例化对象

public class ManBuilder implements Builder {private Contend manBuilder;public ManBuilder(){this.manBuilder = new Contend();}@Overridepublic void buildAskName() {// TODO Auto-generated method stubSystem.out.println("man叫名字");}@Overridepublic void buildCommunication() {// TODO Auto-generated method stubSystem.out.println("man叫约会");}@Overridepublic void buildExpress() {// TODO Auto-generated method stubSystem.out.println("man叫表白");}@Overridepublic void buildParise() {// TODO Auto-generated method stubSystem.out.println("man叫称赞");}@Overridepublic Contend createContent() {// TODO Auto-generated method stubreturn this.manBuilder;}}

Director指导生产

//负责指导生成动作组装
public class Director {public Contend createContendByDirector(Builder builder){builder.buildAskName();builder.buildParise();builder.buildExpress();builder.buildCommunication();return builder.createContent();}
}

Test测试类

public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//指导者,组合动作Director director = new Director();Contend createContendByDirector = director.createContendByDirector(new BoyBuilder());Contend manBuilder = director.createContendByDirector(new ManBuilder());System.out.println(createContendByDirector);System.out.println(manBuilder);}}

结果如下:

建造者模式用JAVA的简单实现相关推荐

  1. 建造者模式 设计模式 Java实现 创建型

    ** 建造者模式 设计模式 Java实现 注意与工厂模式 对比 比较常用 ** 建造者-定义与类型 定义:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示 用户只需指定需要建造 ...

  2. (Builder)建造者模式的Java实现

    建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 使用场景: 1.当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. 2.当构 ...

  3. 建造者模式(Java与Kotlin版)

    前文推送 设计模式 简单工厂模式(Java与Kotlin版) 工厂方法模式(Java与Kotlin版) 抽象工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比J ...

  4. 建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例

    本文实例讲述了PHP设计模式之建造者模式.分享给大家供大家参考,具体如下: 建造者模式: 将复杂对象的创建过程和表示进行分离(好吧,我也看不懂什么意思1). 来点我人类能听懂的话: 1.在客户端看来需 ...

  5. 设计模式之—建造者模式(Builder)-Java实现

    Builder模式,将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部 表象的产品对象.建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节.建造模式可以 ...

  6. Java设计模式之建造者模式(精髓版)

    目录 1.建造者模式阐述 2.使用Java代码实现建造者模式 3.为什么需要使用建造者模式? 4.建造者模式与工厂方法模式有什么区别? 1.建造者模式阐述 Java 建造者模式是一种创建型设计模式,其 ...

  7. Java设计模式 建造者模式

    前言 建造者模式(Builder Pattern)又称为创建者模式,建造者模式使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在该模 ...

  8. 大聪明教你学Java设计模式 | 第二篇:建造者模式

    前言 大聪明在写代码的过程中发现设计模式的影子是无处不在,设计模式也是软件开发人员在软件开发过程中面临的一般问题的解决方案.大聪明本着"独乐乐不如众乐乐"的宗旨与大家分享一下设计模 ...

  9. Java 设计模式情景分析——建造者模式

    当我们遇到类似汽车的装配,需要车轮.方向盘.发动机,还有各种小零件时,为了在构建过程中隐藏实现细节,就可以使用建造者模式 (Builder模式) 将部件和组装过程分离,使得构建过程和部件都可以自由扩展 ...

最新文章

  1. JQuery UI库 - Dialog
  2. MATLAB学习笔记(一)
  3. 上下定高 中间自适应_ADAS|驾驶辅助系统之自适应灯光照明系统
  4. 一:包装好和吹出去 二:三国心得
  5. 机器学习之最大似然估计(MLE)和最大后验概率估计(MAP)
  6. python三种数据类型_Python零基础入门学习02:Python基本数据类型:数字类型
  7. python tkinter画笑脸_python – 如何在tkinter窗口中绘制图像
  8. 热点Key问题的发现与解决
  9. windows 设置ssh登录
  10. 政府黑客使用无文件技术投放远程控制木马
  11. Linux mmc驱动框架(4)——卡检测及初始化
  12. InfluxDB+Grafana Alert功能Email+webhook
  13. Pytest测试框架(二):pytest 的setup/teardown方法
  14. i.e., namely, that is区别
  15. 新买的硬盘怎么装系统
  16. ubuntu查看系统信息命令
  17. python浮点数整数、小数分离,整数取整
  18. C语言编程实现冰雹猜想的算法,并测算各个自然数到达4-2-1谷底(即N等于4,2,1结束后)所经过的变换次数。
  19. 听“前微软系”AI大牛讲“京东新生活”
  20. 海康威视工程师谈嵌入式软件

热门文章

  1. 最新华为鸿蒙系统升级名单,鸿蒙系统首批升级机型名单_华为鸿蒙系统升级机型名单时间表...
  2. Python生成 gif 动图
  3. 大疆无人机安卓Mobile Sdk开发(三)制定航点任务WaypointMission
  4. 设置mysql root密码
  5. opencv python 调用网络摄像头 (局域网)
  6. 鸿蒙之境全关卡,神都夜行录鸿蒙之境攻略
  7. 鸿蒙之境的称号,神都夜行录鸿蒙之境如何玩 鸿蒙之境阵容选择
  8. 4行Python代码监测每行程序的运行时间和空间消耗
  9. 《PeopleWare》读书笔记
  10. 切削技术首页 基础知识 钻镗铣加工 铣削问题与对策