标签:c++ 设计模式
当我们要完成在某一细节层次上一致的一个过程或一系列步骤,但在其个别步骤的一个更详细层次上实现不同时,可以考虑使用模板方法模式。
//Template.h
#include "stdafx.h"
class AbstractMethod
{
private:
virtual void pro1()=0;
virtual void pro2()=0;
public:
void MethodPro();
};
class ConcreteMethod1 :public AbstractMethod
{
private:
virtual void pro1();
virtual void pro2();
};
class ConcreteMethod2 :public AbstractMethod
{
private:
virtual void pro1();
virtual void pro2();
};#include "stdafx.h"
#include "Template.h"
#include <iostream>
using namespace std;
void AbstractMethod ::MethodPro()
{
cout << "pro1 run:";
pro1();
cout << "pro2 run:";
pro2();
cout << "Method end"<<endl;
}
void ConcreteMethod1 ::pro1()
{
cout << "ConcreteMethod1::pro1" << endl;
}
void ConcreteMethod1 ::pro2()
{
cout << "Concretemethod1::pro2" << endl;
}
void ConcreteMethod2 ::pro1()
{
cout << "ConcreteMethod2::pro1" << endl;
}
void ConcreteMethod2 ::pro2()
{
cout << "Concretemethod2::pro2" << endl;
}
// TemplateMethod.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "Template.h"
int _tmain (int argc , _TCHAR * argv [])
{
AbstractMethod*me = new ConcreteMethod1 ();
me->MethodPro();
me = new ConcreteMethod2();
me->MethodPro();
getchar();
return 0;
}标签:c++ 设计模式
原文地址:http://blog.csdn.net/wwwdongzi/article/details/26081663