标签: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