定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

AbstractClass 是抽象类,其实也是一个抽象模板,定义并实现了一个模板方法,这个模板方法一般是具体方法,它给出了一个顶极端逻辑骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类中实现。

ConcreteClass ,实现父类定义的一个或多个抽象方法,每一个AbstractClass 都可以有任意多个 ConcreteClass 与之对应,每一个 ConcreateClass 都可以给出这些抽象方法的不同实现,从而使得顶级逻辑的实现各不相同。

模板方法模式是通过把不变行为搬移到超类,去除子类中的重复代码来实现它的优势,它提供了一个很好的代码复用平台。

当我们要完成某一细节层次一致的一个过程或一系列步骤,但个别步骤在更详细的层上的实现可能不同时,通常使用模板方法模式来实现。

posted on 2015-01-31 11:33  wisdo  阅读(292)  评论(0编辑  收藏  举报