
一. java的builder模式详解
1. 概念
又名建造者模式,是较为复杂的创建性模式,它将客户端与包含多个组成部分的复杂对象的创建过程分离。主要是为了将复杂对象的构建与表示分离。
2. 使用场景
当构建一个对象需要很多参数,并且参数个数或者类型不固定的时候。
glide图片加载的时候,可以设置缓存、图片大小等,使用的就是builder模式。
3. UML结构图分析
1. Builder是抽象的建造者,用于创建Product,它可以创建Product的partA、partB、partC,同时返回这个创建好的Product。
2. ConcreteBuilder实现了Builder接口,负责具体构造过程。
3. Product是一个复杂对象。
4. Director是负责Product构建次序。
客户端一般只需要与Director直接交互。
4. 实际代码分析
- 第一步创建Builder类
抽象类Builder中持有了Product引用,并分配了三个抽象的build方法,然后提供了getResult方法返回Product对象。 - 第二步创建ConcreteBuilder类
它实现了Builder类 - 第三步创建Product类
我们说Product是一个复杂对象,那什么是复杂对象?其实就是一个包含了负责成员变量的对象。 - 第四步创建Director类
Director类主要有两个作用:一是隔离创建复杂对象的过程,二是控制复杂对象的创建过程。
5. builder模式优点
- 可以很容易改变产品的内部表示
- 产品构建与表示分离