建造者(Builder)
Abstract Factory 和 Builder 的区别:
1)主要区别是Builder模式着重于一步一步构造一个复杂对象,
而Abstract Factory着重于多个系列的产品对象(简单的或是复杂的)
2)Builder在最后一步返回产品, 而对于Abstract Factory来说,
产品是立即返回的.
意图:
将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不
同的表示. (构建过程是稳定的, 把流程抽象出来了)
通过不同的建造者创建不同的表示.
适用性:
1)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
2)当构造过程必须允许被构造的对象有不同的表示时
效果:
1)它使你可以改变一个产品的内部表示
2)它将构造代码和表示代码分开
3)它使你可对构造过程进行更精细的控制
实现:
1)装配和构造接口
2)为什么没有抽象类
Abstract Factory 和 Builder 的区别:
1)主要区别是Builder模式着重于一步一步构造一个复杂对象,
而Abstract Factory着重于多个系列的产品对象(简单的或是复杂的)
2)Builder在最后一步返回产品, 而对于Abstract Factory来说,
产品是立即返回的.
意图:
将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不
同的表示. (构建过程是稳定的, 把流程抽象出来了)
通过不同的建造者创建不同的表示.
适用性:
1)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
2)当构造过程必须允许被构造的对象有不同的表示时
效果:
1)它使你可以改变一个产品的内部表示
2)它将构造代码和表示代码分开
3)它使你可对构造过程进行更精细的控制
实现:
1)装配和构造接口
2)为什么没有抽象类
3)在Builder中缺省的方法为空