代码改变世界

Builder,Template模式区别总结

2011-02-13 19:59  hanwesley  阅读(602)  评论(0编辑  收藏  举报

软件编程一个恒古不变的流程: “发现变化、封装变化、隔离变化”。

模板方法:定义了一个操作中算法的骨架,而将具体步骤的实现延迟到子类中。模板方法使得派生类可以在不改变一个算法结构的情况下,重新定义该算法某些特定步骤的实现逻辑。
建造者模式:将一个复杂对象的建造方法从其表现中分离出来,以便同样的建造方法可以建立不同的表现。

Abstract Factory与Builder相似,因为它可以创建复杂对象。主要的区别是Builder模式着重于一步步构造一个复杂对象,而Abstract Factory着重于多个系列的产品对象(简单的或复杂的)。Builder是最后一步返回产品,而Abstract Factory是立即返回产品。Composite通常是用Builder生成的。

指导者角色与建造者角色之间是弱依赖关系,这保证了Builder的扩展不会影响产品的创建