浏览:1692008-05-26 08:59   来自队长      :

首先非常感谢伍迷大哥写了这么好的设计模式的书,让我获益良多!


看完模板方法之后,再看Builder的时候,感觉这两个模式没啥的的区别,好像是一样的。
两种模式都是有类似的主方法结构,只是在具体子类实现的时候有区别,只是builder的着眼点是对象的创建,而Template Method的着眼点可能是算法。

哪位大哥给解解惑呗,谢谢了!

楼主
  2个月前   横刀天笑      :
学习设计模式先要了解模式的意图,模式的意图才是真正重要的地方,而那个UML图好多模式都是类似的,先从简单的说吧Template Method这个模式就是提供一个框架,这个框架里定义了一些步骤或者叫做算法,比如WinForm这个框架,微软肯定先定义了要在桌面上显示一个窗体是怎么个步骤,但是纵不能所有的窗体都一样吧?所以允许我们这些程序员在子类里重新定义一些关键的步骤,而父类里定义算法框架的那个方法就叫做模板方法,顾名思义,像个模板一样。再来说说Buider模式,首先Buider模式是管对象创建的,也许复杂对象的创建要分为很多步骤,这个步骤很复杂,我们希望复用这个步骤,但是这个步骤里面一些环节可能发生变化。可能没怎么说明白,总之一点还是“意图”,我们编写软件有一个流程:“发现变化,封装变化,隔离变化”,我觉得设计模式就是为这样一个流程服务的,看一个模式看看他到底是为了哪些地方不变,而为了达到这个不变我们做了什么些工作
1楼 回到顶楼 
  2个月前   张树坤      :
楼上说的好,特别是“发现变化、封装变化、隔离变化”。
我也说两句:
模板方法:定义了一个操作中算法的骨架,而将具体步骤的实现延迟到子类中。模板方法使得派生类可以在不改变一个算法结构的情况下,重新定义该算法某些特定步骤的实现逻辑。
建造者模式:将一个复杂对象的建造方法从其表现中分离出来,以便同样的建造方法可以建立不同的表现。
2楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“大话设计模式”


其他话题

相关链接
1 13041