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:适用于变化则总是且只能一起发生的情况。
浙公网安备 33010602011771号