建造者模式
模式描述
将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建出不同对象。
优点
- 避免构造器参数太多,按需构造;
- 避免 setter 方法,使对象不可变;
- 构造和表示代码分开;
- 更精细控制构造过程;
缺点
应用场景
- 复杂对象的创建独立于创建对象的组成部分时;
- 需要按需构造时;
DATE | CHANGELOG |
---|---|
2023年5月1日 | 初始化 |
UML 类图
classDiagram
class Builder {
<<static>>
setXxx()
build() Product
}
class Product {
-Product()
}
Builder <-- Product
Builder <-- Client
参与者
Builder 类
- 使用 builder 创建一个 Product
Product 类
- 产品类。
Client 类
客户端。
数据流
相关模式
- 抽象工厂:建造者模式是一步一步建造,并通过 build 方法返回;而抽象工厂是立刻返回;
- 组合模式:组合模式通常是 Builder 模式生成的。
补充
- Builder 往往是静态的,也可以是一个接口;