模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。
在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
class ITemplate{
public:
virtual ~ITemplate(){}
virtual void templateMethod(){
operation1();
operation2();
operation3();
}
void operation1(){
//do someting.
}
virtual void operation2() = 0;
virtual void operation3() = 0;
}
class OjbectOnTemplate : public ITemplate{
public:
void operation2(){
//do someting.
}
void operation3(){
//do something.
}
}