建造者模式
又称生成者模式,封装一个类的具体创建过程,使用者无需知道类的具体组成
组成
- 一个产品类(
Product
) - 一个抽象的建造者(
Builder
) - 具体的建造者(
ConcreteBuilder
) - 一个指挥者(
Director
)
示例代码
以画画为例,画一幅简单的画需要选定纸张(paper)、图形(shape)、颜色(color)
产品类
1 |
|
抽象建造者
1 |
|
具体建造者
1 |
|
指挥者
1 |
|
额外的
在《Effective Java》中提到,当一个类有大量的构造参数时,用重叠构造器模方式,或JavaBean的方式(多线程下可能导致不一致)都不是很合适, 此时用建造者方式也可解决该问题
示例代码
1 |
|
1 |
|
比较易于阅读,还模拟了具名的可选参数,就像
Python
和Scala
一样