模板方法模式是在基类中定义操作的步骤分解(算法骨架),在子类中实现具体的单个步骤的模式。
以下代码定义了基类,基类规定了操作的步骤分解。
#include <iostream>
using namespace std;
class Abstraction
{
public:
virtual ~Abstraction(){}
void Operation()
{
OperationStep0();
OperationStep1();
}
virtual void OperationStep0()=0;
virtual void OperationStep1()=0;
};
以下代码定义了子类,子类要分别实现每个具体步骤。
class ConcreteAbstraction:public Abstraction
{
public:
void OperationStep0()
{
cout<<__PRETTY_FUNCTION__<<endl;
}
void OperationStep1()
{
cout<<__PRETTY_FUNCTION__<<endl;
}
};
以下代码是演示,使用子类对象进行操作,操作就由子类实现的步骤完成。
int main(void){
Abstraction* obj = new ConcreteAbstraction();
obj->Operation();
delete obj;
return 0;
}
输出
virtual void ConcreteAbstraction::OperationStep0()
virtual void ConcreteAbstraction::OperationStep1()
网友评论