概述
建造者模式也称为生成器模式,是一种对象创建型模式,它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。
建造者模式意在为重叠构造器这种反模式(telescoping constructor anti-pattern)找到一种解决方案,对于重叠构造器反模式,我们经常能看到类似于下列的构造器形式(下述例子来源于《Effective Java》):
如上所见,这些构造器可能包含了一些我们并不想设置的参数,但是还是不得不为其传递值,并且,当参数一多,代码就会变得难以阅读,时常出现无法知道某一个值的具体含义,必须仔细对照构造器来查找。伴随着参数的增多,这种方式的构造器将很快是去控制。
因此当遇到这种许多构造器参数的时候,可以选用建造者模式。
实现方式
|
|
如上代码所示,这样的客户端代码容易编写,并且易于阅读。对于参数值,可以单独设置组合,不再需要传递不必要的参数值。
适用环境
- 需要生成的产品对象有复杂的内部结构,这些产品对象通常包含多个成员属性
- 构建的过程允许对构建的对象进行不同的表示
具体实例
参考资料
- java-design-patterns
- 《Effective Java 第2版》