模板方法模式
模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。
#pragma once
#include <iostream>
#define SAFE_DELETE(ptr) if(ptr!=NULL){delete ptr; ptr = NULL;}
using namespace std;
//抽象模板(当做是老师教的解题模板)
class TempLate
{
public:
virtual void methodsA() = 0; //A步骤
virtual void methodsB() = 0; //B步骤
//具体操作模板
void solve()
{
methodsA();
methodsB();
}
};
//小明只要按照模板,给出自己的解题步骤
class Ming : public TempLate
{
virtual void methodsA() { cout << "小明的步骤A" << endl; }
virtual void methodsB() { cout << "小明的步骤B" << endl; }
};
//小刚只要按照模板,给出自己的解题步骤
class Gang : public TempLate
{
virtual void methodsA() { cout << "小刚的步骤A" << endl; }
virtual void methodsB() { cout << "小刚的步骤B" << endl; }
};
int main()
{
Ming xiaoming;
Gang xiaogang;
xiaoming.solve();
xiaogang.solve();
return 0;
}