CHYGO

CHYGO的窝

 

Template Method和其他模式的一些对比

  重新复习了Template Method模式,感觉和Strategy和Decorator有点类似。所以做了一个小对比。

PART 1

Template Method vs Strategy:

意图:

(1)Strategy:将算法的选择与算法的实现相分离;

(2)Template Method:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。不改变算法的结构而重定义它的步骤。

(以上摘抄自《设计模式解析》)

共:

 (1)都是行为模式;

(2)都是将算法的实现动态化。

异:

(1)使用范围不同

 Strategy:适用于算法独立变化的情况;

Template Method:适用于变化则总是且只能一起发生的情况。

 

PART 2

Template Method vs Decorator:

意图:

(1)Decorator:动态地给一个对象添加一些额外的职责。

(2)Template Method:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。不改变算法的结构而重定义它的步骤。
(以上摘抄自《设计模式解析》)

共:

(1)如果把给对象添加职责看成算法,那么两者也都是将算法的实现动态化

异:

(1)所属模式类别不同

Strategy:结构型模式(将已有功能组合);

Template Method:行为型模式。

(以上摘抄自《设计模式解析》)

(2)使用范围不同

Strategy:职责的组合是多种多样的,也就是独立变化的;

Template Method:适用于变化则总是且只能一起发生的情况。

 

posted on 2010-11-15 22:08  CHYGO  阅读(146)  评论(0)    收藏  举报

导航