定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的机构即可重新定义算法的某些特定步骤。
#pragma once
#include "stdafx.h"
#include<string>
#include<iostream>
#include<windows.h>
using namespace std;
#pragma warning(disable:4996)
//模板方法模式(TemplateMethod)
class Template {
public:
virtual VOID PrimitiveOperation1() = 0;
virtual VOID PrimitiveOperation2() = 0;
VOID DoHappyThings() {
PrimitiveOperation1();
PrimitiveOperation2();
cout << "Over" << endl;
}
};
class Body :public Template {
public:
VOID PrimitiveOperation1() {
cout << "PrimitiveOperation1" << endl;
}
VOID PrimitiveOperation2() {
cout << "PrimitiveOperation2" << endl;
}
};
int main()
{
Body * pBody = new Body();
pBody->DoHappyThings();
getchar();
return 0;
}