设计模式之建造者模式
2015-06-04 21:12
183 查看
从800万年前东非大裂谷出现造就非洲猿開始随环境不断进化到类人猿、猿人,最后随着历史的脚步进化到现代智人。人类的脚步,从来就不曾停止;人类文明的进步不断加快。这当中最重要的就是人类把已有的经验总结成一个个做事流程保留传承下来。流程不变,但每一个流程实现的详细细节则是常常变化的。这就是要说的建造者模式。
建造者模式的优点就是保证了流程不会变化,流程即不会添加、也不会遗漏或者产生流程次序错误。
建造者模式中的角色:
1. builder:是为创建一个Product对象的各个部件指定的抽象接口。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及详细的对象部件的创建。
2. ConcreteBuilder:详细建造者,实现Builder接口,构造和装配各个部件,针对不同的商业逻辑,详细化复杂对象的各部分的创建。 在建造过程完毕后,提供产品的实例。
3. Director:指挥者,构建一个使用Builder接口的对象,调用详细建造者来创建复杂对象的各个部分,在指挥者中不涉及详细产品的信息,仅仅负责保证对象各部分完整创建或按某种顺序创建。
4. Product:详细产品要创建的复杂对象。
建造者模式结构图:
什么时候用这个模式呢?
a.创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,可是对象的内部组成构件面临着复杂的变化。
b.要创建的复杂对象的算法,独立于该对象的组成部分,也独立于组成部分的装配方法时
建造者模式的优点就是保证了流程不会变化,流程即不会添加、也不会遗漏或者产生流程次序错误。
建造者模式中的角色:
1. builder:是为创建一个Product对象的各个部件指定的抽象接口。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及详细的对象部件的创建。
2. ConcreteBuilder:详细建造者,实现Builder接口,构造和装配各个部件,针对不同的商业逻辑,详细化复杂对象的各部分的创建。 在建造过程完毕后,提供产品的实例。
3. Director:指挥者,构建一个使用Builder接口的对象,调用详细建造者来创建复杂对象的各个部分,在指挥者中不涉及详细产品的信息,仅仅负责保证对象各部分完整创建或按某种顺序创建。
4. Product:详细产品要创建的复杂对象。
建造者模式结构图:
什么时候用这个模式呢?
a.创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,可是对象的内部组成构件面临着复杂的变化。
b.要创建的复杂对象的算法,独立于该对象的组成部分,也独立于组成部分的装配方法时
相关文章推荐
- 【每日scrum】NO.6
- HDU 3667 — Transportation 费用流
- MyBatis多对多增删改查(不建关联实体)
- [android] OpenGL与OpenGL ES简介
- 乂文®便携触摸屏
- 数字在排序数组中出现的次数
- 基于 Android NDK 的学习之旅----- C调用Java
- Linux常用命令
- easy_install 错误Setup script exited with error: Unable to find vcvarsall.bat解决方法
- 动态规划的Warshall和Floyd算法:
- 成员变量,局部变量,实例变量,类变量的区别
- linux配置ip地址(centos7 64bit)
- hdu1232&& hdu1213(简单并查集)
- discuz X3.2 在用户信息表加一个头像字段(已解决)
- iOS百度推送
- STL --> queue单向队列
- hdu1232&& hdu1213(简单并查集)
- Android Service完全解析,关于服务你所需知道的一切(上)
- Android必备的Java知识点
- 深复制和浅复制(clone)