建造者模式
类图
四个部分:
1. 产品类:定义产品有哪些属性或部分,及设置和获取其属性的方法。
2. 建造抽象类或接口:生成或建造 产品各部分 所对应的操作有哪些?就是在这里声明。
3. 建造具体实现类:对同一种类但类型不同的产品,各部分具体的生产操作。(如手机是一类产品,那小米、魅族、华为就是一个个具体的产品,各自手机的手机壳、处理器不同,其对应具体的生产操作也会不同)
4. 导演类(建造者模式的精髓):只负责保证复杂对象各部分被创建或按某种顺序创建。(主要是为了保证可以把建造的过程约束起来.这样建造的时候少任何一个部件都无法建造成功.有点类似标准生产的感觉;例如,生产出一个完整的手机,首先得把处理器安装好,然后再封装手机壳,这两个顺序不可能颠倒吧)
最后,可以通过Director导演类调用其中方法,传入参数从而获取到具体的产品实例。
建造者模式与工厂模式的区别
我们可以看到,建造者模式与工厂模式是极为相似的,总体上,建造者模式仅仅只比工厂模式多了一个“导演类”的角色。在建造者模式的类图中,假如把这个导演类看做是最终调用的客户端,那么图中剩余的部分就可以看作是一个简单的工厂模式了。
参考:
建造者模式(Builder Pattern)- 最易懂的设计模式解析
( 这个模式,能正确理解了原理,那写出来的代码例子都差不多,我暂时就不打算写了,
想看例子的话,推荐 建造者模式(Builder Pattern)- 最易懂的设计模式解析 的例子,相对其他的比较规范点)
共同学习,共同进步,若有补充,欢迎指出,谢谢!