行为模式:Template Method 模板方法模式
目录

模板方法:在一个方法中定义一个算法的骨架,而将算法中的一些步骤延迟到子类中。 这个方法叫做模板方法(template method)。 模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些操作。

一个模板方法将一些抽象的操作定义为一个算法,而子类可以重定义这些操作,提供具体的行为。 这个模板方法定义了使用这些操作的流程,实现算法的不变部分,而讲可变部分交给子类来实现。

AbstractClass {
public:
void templateMethod() {
fun1();
if (fun2On()){
fun2();
}
}

private:
virtual void fun1();
virtual int fun2On();
virtual void fun2();
};

ConcreteClass : public AbstractClass {
private:
virtual void fun1();
virtual int fun2On();
virtual void fun2();
};

void ConcreteClass::fun1(){...}
int ConcreteClass::fun2On(){return true}
void ConcreteClass::fun2(){...}

发表评论