Strategy与Template Method

Strategy与Template Method

Strategy封装不同的算法,这些算法可以相互替换,于达到实现不同目的。
Template Method定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。

Strategy通过对象组合来实现。
Template Method通过对象继承来实现。
根据“组合优先于继承”原则,在大多数情况下,我们选择Strategy。但并不是一开始
就知道要用Strategy.
有时是通过微重构(组合方法经常被使用),得到Template Method,当问题复杂时,子类需要重写
父类的很多方法,或者子类继承了它本不需要的方法时,应该把Template Method
重构倒Strategy.就像在Header First Deign Patterns中的提到的会飞的鸭子。
Strategy解决了继承带来的耦合问题。

posted on 2008-02-27 16:38  bmrxntfj  阅读(378)  评论(0编辑  收藏  举报