定义:通过封装对象的创建过程将对象的创建与使用分离开来。便于类的解耦,但同时带来的多余的builder对象,对象的修改也要修改builder类。
建造者模式对象结构
- Director:调用具体建造者来创建复杂对象的各个部分,在指导者中不涉及具体产品的信息,只负责保证对象各部分完整创建或按某种顺序创建。
- Builder:给出一个抽象接口,以规范产品对象的各个组成成分的建造。这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。
- ConcreteBuilder:实现Builder接口,针对不同的商业逻辑,具体化复杂对象的各部分的创建。 在建造过程完成后,提供产品的实例。
- Product:要创建的复杂对象。
建造者模式与工厂模式区别
- 工厂模式只负责对象的创建,不关注创建过程
- 建造者模式控制对象属性的创建或创建顺序
- 工厂模式创建的对象都一样,建造者模式通过创建过程可能创建不一样的对象
常见的使用builder模式的实现:
- Mybatis中配置解析过程
XMLConfigBuilder
- OkHttp中
Request
对象建造者模式 - GsonBuilder建造者模式
- 其他流行框架
网友评论