版权声明:本文为博主原创文章,未经博主允许不得转载。博客源地址为zhixiang.org.cn https://blog.csdn.net/myFirstCN/article/details/80866277

学习更多设计模式请参考:入门设计模式之汇总篇

引言:建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而利用一个建筑过程生成具有不同内部表象的对象。

初次读来这句话可能晦涩难懂,待我们一点点的来剖析它,解开他的神秘面纱。先看下图:

Builder:抽象建造者,给出了建造接口,这里我们以造房子为例,Builder就规定了所有的建筑工人都得会铺地板、砌墙、吊天花板。

WorkBuilder1:具体的建筑实现者,我们这里称之为小王,也就是说小王满足了铺地板、砌墙、吊天花板的要求,现在他就是一个合格的建筑工人了。

Floor、Wall、Ceiling:产品,它们就是小王需要建造的对象了。

Driector:导演者,这里我们可以理解为包工头,他呢就是指挥建造者们的角色了。比如有个富豪要建一个别墅,那么他会直接找到包工头:来,给你钱,去给我来个别墅。其实这个富豪在这里是完全不知道下方的建造者小王小刘等等人是如何操作的,他只跟包工头接触

/**
*抽象建造者
*也可以是一个接口
*/
public abstract class Builder {abstract void buildFloor();abstract void buildWall();abstract void buildCeiling();
}
/**
*小王
*/
public class WorkBuilder1 extends Builder {@Overridevoid buildFloor() {new Floor();}@Overridevoid buildWall() {new Wall();}@Overridevoid buildCeiling() {new Ceiling();}
}
/**
*地板
*/
public class Floor{
}
/**
*墙
*/
public class Wall{
}
/**
*天花板
*/
public class Ceiling {
}/**
*包工头
*/
public class Driector {public Builder builder;public Driector(Builder builder){this.builder=builder;}public void excute(){this.builder.buildFloor();this.builder.buildCeiling();this.builder.buildWall();}
}

现在我们回过头换一种方式再来看引言,将别墅的内部组成与建筑过程分离开来,从而实现一个包工头不仅可以造别墅还能修游泳池等。

z这样的话是不是已经理解了呢

入门设计模式之建造者模式相关推荐

  1. 建造者模式java_java设计模式3——建造者模式

    java设计模式3--建造者模式 1.建造者模式介绍: 建造者模式属于创建型模式,他提供了一种创建对象得最佳方式 定义: 将一个复杂对象的构建和与它的表示分离,使得同样的构建过程可以创建不同的表示 主 ...

  2. Java设计模式(建造者模式-适配器模式-桥接模式)

    Java设计模式Ⅲ 1.建造者模式 1.1 建造者模式概述 1.2 建造者模式的注意事项和细节 1.3 代码理解 2.适配器模式 2.1 类适配器模式 2.1.1 代码理解 2.2 对象适配器模式 2 ...

  3. 折腾Java设计模式之建造者模式

    博文原址:折腾Java设计模式之建造者模式 建造者模式 Separate the construction of a complex object from its representation, a ...

  4. java设计模式 建造模式_理解java设计模式之建造者模式

    理解java设计模式之建造者模式 发布于 2020-12-10| 复制链接 摘记: 建造者模式(Builder Pattern)主要用于"分步骤构建一个复杂的对象",在这其中&qu ...

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

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

  6. C#设计模式之四建造者模式(Builder Pattern)【创建型】

    一.引言 今天我们要讲讲Builder模式,也就是建造者模式,当然也有叫生成器模式的,英文名称是Builder Pattern.在现实生活中,我们经常会遇到一些构成比较复杂的物品,比如:电脑,它就是一 ...

  7. 学习《图说设计模式》建造者模式

    图说设计模式之建造者模式 1. 模式动机 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮.方向盘.发送机等各种部件.而对于大多数用户而言,无须知道这 ...

  8. 实践GoF的23种设计模式:建造者模式

    本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:建造者模式>,作者: 元闰子. 简述 在程序设计中,我们会经常遇到一些复杂的对象,其中有很多成员属性,甚至嵌套着多个复杂的对象 ...

  9. java设计模式之建造者模式(UML类图分析+代码详解)

    大家好,我是一名在算法之路上不断前进的小小程序猿!体会算法之美,领悟算法的智慧~ 希望各位博友走过路过可以给我点个免费的赞,你们的支持是我不断前进的动力!! 加油吧!未来可期!! 本文将介绍java设 ...

最新文章

  1. Linux中锚定符号的作用,Linux基础(9)文本处理三剑客之grep
  2. FewRel 2.0数据集:以近知远,以一知万,少次学习新挑战
  3. 马里奥AI实现方式探索 ——神经网络+增强学习
  4. 【转】!C#中的Stream相关
  5. 二、搭建Apache服务器 模板引擎
  6. Ext.ClassManager源码
  7. Quartz.Net 使用
  8. 腾讯疯狂扩展7000人!我居然挂在了项目这块。。。
  9. 高级GIS-0.整体裁剪
  10. Hibernate 入门简单教程
  11. python停用词_python利用jieba分词进行分词,去停止词(停用词)。
  12. 逆向直播盒子MT·Box-iOS客户端
  13. 计算机组装与维修第3版,计算机组装与维护(第3版)
  14. 街头篮球服务器未响应,我的生涯我做主《街头篮球》生涯联赛FAQ
  15. 获取300套PPT模板+7天WPS会员,扫码关注领取
  16. CSS中常用的几种选择器是哪几种呢?
  17. Excel条形图也可以变身高大上
  18. wi-fi 频宽设置_为客人设置Wi-Fi的10种方法
  19. 基于python高仿探迹源码
  20. 用户增长——CLV用户生命周期价值CLTV 笔记(一)

热门文章

  1. 【328天】每日项目总结系列066(2017.12.30)
  2. Swift面向对象基础(上)——Swift中的类和结构体(下)
  3. 使用pip安装BeautifulSoup4模块
  4. 数组list操作,切片
  5. iOS中常见的内存问题
  6. CSS3 box flex 布局
  7. TCP/IP之TCP连接的建立与中止状态分析
  8. DBus glib 各数据类型接收与发送详解—C语言(3)
  9. Flask 项目实战|从零开发“StackOverflow”问答网站
  10. 9个用来爬取网络站点的 Python 库