建造者模式

模式描述

将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建出不同对象。

优点

  1. 避免构造器参数太多,按需构造;
  2. 避免 setter 方法,使对象不可变;
  3. 构造和表示代码分开;
  4. 更精细控制构造过程;

缺点

应用场景

  1. 复杂对象的创建独立于创建对象的组成部分时;
  2. 需要按需构造时;
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 往往是静态的,也可以是一个接口;

示例代码

golang

java