模板模式和策略模式的应用情景类似,但实现方式不同,前者使用继承,后者使用委托。
  模板模式有可能是最“古老”的模式之一,在使用面向对象技术的早期,“继承”大行其道,很多设计人员可能不自觉地使用过模板模式。模板模式的缺点是把具体实现和通用算法紧密地耦合起来,使得具体实现只能被一个通用算法操纵。然而在继承关系中,父类的信息可以更多地暴露给子类,这种(违背面向对象设计原则的)微妙的沟通在一些特定应用中显得更加灵活和方便。
  策略模式是委托的经典用法。策略模式消除了通用算法和具体实现的耦合,使得具体实现可以被多个通用算法操纵。策略模式也增加了类层次,比模板模式复杂。

它们都像试卷,模板模式是填空题,策略模式是选择题。

模板方法

模板模式和策略模式_面向对象




策略模式

模板模式和策略模式_模板模式_02