设计模式:TemplateMethod
针对问题
当一个算法的大部分实现是不变的,只有一部分可变时,我们可以将算法的不变部分提取到基类中,可变部分留给派生类完成,这便是Template Method模式。
介绍
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
实现
Template Method的静态图如下:
AbstractClass中的TemplateMethod实现了算法中不变的逻辑,将可变逻辑PrimitlveOperation交给子类实现。
另一种Template Method的主要用途为hook操作:基类中提供一个默认空操作,派生类可以修改这个操作的实现,相当于在Template Method算法中“插入”了派生类的逻辑。在实现这样的hook时,基类设计者必须指明哪些是hook操作。
特点
1、Template Method模式是代码复用的一种基本技术,它提供了一种反向控制的结构:由父类调用子类的操作。… Read the rest