设计模式之模板方法
一、定义 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。二、类图
三、应用 在抽象的基类中模板算法调用自己的其它行数组成固定的算法,子类并不能修改模板方法;但是可以通过重新实现具体的操作来实现算法实现的改变。 抽象类中也可以定义钩子操作,子类可以实现该钩子也可以使用基类默认的钩子,通过钩子模板方法可以让具体类具有控制是否进行某些操作的能力。
比如抽象类中定义bool hook(){ return true;}
void template(){ operate1();
if(hook())
operate2();
}
如果在具体类中不需要执行操作3 可以重新实现bool hook(){return false;}