Separate the construction of a complex object form its representation so that the same construction process can create different representations

将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

如果我们用了建造者设计模式,用户就只需要指定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道。

Builder 是为创建一个Product 对象的各个部件指定的抽象接口,

ConcreateBuilder 是具体建造者,实现Builder 接口,构建和装配各个部件,Product 是具体的产品角色。

Director 是构建一个使用Builder 接口的对象。

建造者模式的优点:
1. 封装性
   可以使客户端不必知道产品内部组成的细节,不必关心线一个具体的模型内部是如何实现的。

2. 建造者独立,容易扩展

3. 便于控制细节风险
    由于具体的建造者是独立 的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。

建造者模式使用的场合:

主要用于创建一些复杂的对象,这些对象内部构建间的构造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。

建造者模式的好处:使建造代码与表示代码分离,由于该建造者隐藏了该产品是如何组装的,若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。

构建者模式是在当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式。

建造者模式的注意事项
 建造者模式关注的是零件类型和装配工艺,这是它与工厂方法模式最大不同的地方,虽然同为创建类模式,但是注重点不同。

最新文章

  1. xpath 学习一: 节点
  2. Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇
  3. 安装JBPM6运行环境(JBPM6学习之二)
  4. centos 7安装mysql报错-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory
  5. x9015数字电位器应用
  6. Django 中的用户认证
  7. 华为OJ平台——24点游戏
  8. 基于AgileEAS.NET企业应用开发平台的分布式解决方案
  9. 老鸟的Python入门教程
  10. net stop 出现1060错误
  11. 浅谈viewport
  12. Verilog HDL的程序结构及其描述
  13. 我的第一个python web开发框架(14)——后台管理系统登录功能
  14. 接口自动化python
  15. Linux运维之——每日小技巧,获取网站请求数的前20个IP
  16. 20155314 2016-2017-2 《Java程序设计》第6周学习总结
  17. Github如何上传代码?
  18. [洛谷P3346][ZJOI2015]诸神眷顾的幻想乡
  19. C# Socket 接受数据不全的处理
  20. CCF认证题 搜索题

热门文章

  1. Linux文件共享(单进程之间、多进程之间)
  2. CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例
  3. leetcode-1-TwoNums
  4. CodeForces - 1098.DIV1.C: Construct a tree(贪心,构造)
  5. CodeForces - 1087F:Rock-Paper-Scissors Champion(set&数状数组)
  6. BZOJ3771: Triple【生成函数】
  7. 对象Date的方法
  8. WIN 10系统下,在DOS窗口输入Java或者javac出现乱码的解决方法
  9. php登陆绑定手机验证码使用阿里大于接口
  10. POJ1631 LIS模板