Template Method (C++实现)
// Template Method.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class AbstractClass
{
public:
AbstractClass(){}
virtual ~AbstractClass(){}
// 这个函数中定义了算法的轮廓
void TemplateMethod()
{
PrimitiveOperation1();
PrimitiveOperation2();
}
protected:
// 纯虚函数,由派生类实现之
virtual void PrimitiveOperation1() = 0;
virtual void PrimitiveOperation2() = 0;
};
// 继承自AbstractClass,实现算法
class ConcreateClass: public AbstractClass
{
public:
ConcreateClass(){}
virtual ~ConcreateClass(){}
protected:
virtual void PrimitiveOperation1()
{
cout << "PrimitiveOperation1 by ConcreateClass/n";
}
virtual void PrimitiveOperation2()
{
cout << "PrimitiveOperation2 by ConcreateClass/n";
}
};
int _tmain(int argc, _TCHAR* argv[])
{
AbstractClass* pConcreateClass = new ConcreateClass;
pConcreateClass->TemplateMethod();
delete pConcreateClass;
return 0;
}