设计模式之模板方法

 

一、定义
        模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
二、类图

设计模式之模板方法_第1张图片

三、应用
        在抽象的基类中模板算法调用自己的其它行数组成固定的算法,子类并不能修改模板方法;但是可以通过重新实现具体的操作来实现算法实现的改变。
        抽象类中也可以定义钩子操作,子类可以实现该钩子也可以使用基类默认的钩子,通过钩子模板方法可以让具体类具有控制是否进行某些操作的能力。
        比如抽象类中定义
bool hook()
{
    return true;
}

void template()
{
    operate1();
    if(hook())
         operate2();
}

如果在具体类中不需要执行操作3 可以重新实现bool hook(){return false;}


你可能感兴趣的:(设计模式之模板方法)