设计模式之生成器模式(Builder)-创建模型
1.意图
将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.
2.适用性
- 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
- 当构造过程必须允许被构造的对象有不同的表示时。
3.结构
4.参与者
- Builder: 为创建一个Product对象的各个部件指定抽象接口。
- ConcreteBuilder: 实现Builder的接口以构造和装配该产品的各个部件。
- Director: 构造一个使用Builder接口的对象。
- Product: 表示被构造的复杂对象。
5.效果
- 1) 它使你可以改变一个产品的内部表示,同时隐藏该产品是如何装配的.
- 2) 它将构造代码和表示代码分离.
- 3) 它使你可以对构造过程进行更精细地控制.
6.相关模式
- Abstraction Factory与Builder相似,因为它们都是创建复杂的对象.主要区别是Builder模式着重一步一步地构建复杂对象.而Abstraction Factory着重多个产品系列(产品族).Builder模式在最后一步返回产品,而Abstraction Factory来说,产品是立即返回的.
- Composite通常是Builder生成的.