Builder模式是Android领域常见的一个设计模式,随随便便一个开源库中你都能看到它的身影。Builder模式的普及和它的解耦、方便拓展、易于使用等特性有关。
定义
Builder模式是指将一个复杂对象的创建和表示相分离,使得同样的创建过程可以创建不同的表示。通用类图如下:

Product类可有可无,一般是实现了模板方法,有ConcreteBuilder返回。Builder是抽象类,规范产品的定义,具体实现由ConcreteBuilder执行,Director是Builder的使用。
Builder模式和工厂模式很像,两者都属于构建型的设计模式,不同之处在于,Builder偏向于关心构建顺序,工厂模式一般只负责创建。
优点
- 封装性强,达到了解耦的目的
- 模块是独立的,方便以后拓展
- 可以做灵活的初始化工作
缺点
- 会增加比较多的代码量
使用场景
- 当需要不同的搭配时,这是最常见的情景,比如StringBuilder
- 不同的调用顺序会产生不同的事件结果时,适合使用Builder模式
参考:
设计模式之禅