前置知识:需要了解工厂模式,如果不了解可以看我的其他博客。
创建者模式(Builder)
假设需要生产一辆小汽车,你可以创建一个工厂,来生产轮子、方向盘、挡风玻璃等一系列组件,在生产小汽车的代码中(也就是客户端的代码中),你需要先完成这些子组件的创造,然后再进行组装,客户端的代码会非常多。创建者模式
在这个时候就起作用了,创建一个新类将组装的工作交给这个类来执行。
整体类图
总结
将复杂的初始化进行了封装,factory可以创造product,builder中有factory的引用。使用时只需声明一个builder将factory传入,然后调用其中的方法即可。
QA
Q:为什么不将创建的代码继续放到工厂中?
A: 如果放到工厂中,工厂既负责创建product,也负责组装product,违背了单一责任原则
,拿出来可以降低代码的耦合度。