读书人

C++=》设计方式之模板模式(Template

发布时间: 2012-06-20 20:37:21 作者: rapoo

C++=》设计模式之模板模式(Template Method)

《TemplateMethod1.h》

#include <iostream>

#include <string>

using namespace std;

class A{
public:
A(){};
virtual ~A(){};
void Method();
protected:
virtual void b() = 0;
virtual void c() = 0;
};

class B: public A{
public:
B(){};
virtual ~B(){};
protected:
void c();
void b();
};

class C: public A{
public:
C(){};
virtual ~C(){};
protected:
void b();
void c();

};


《TemplateMethod1.cpp》

include "stdafx.h"
#include "TemplateMethod1.h"

void A::Method(){
this->b();
this->c();
}

void B::b(){
cout << "B::b()" <<endl;
}
void B::c(){

cout << "B::c()" <<endl;
}
void C::b(){

cout << "C::b()" <<endl;
}
void C::c(){
cout << "C::c()" <<endl;
}


int main(int argc, char* argv[])
{
A* t = new B;
A* t1 = new C;
t->Method();
t1->Method();
return 0;
}


做一个简单的实现,具体了解了模板模式的核心主要是:将算法接口封装在抽象接口类中,算法实现放在派生类中实现。

工作中经常这么设计,原来也属设计模式中的一种。



读书人网 >软件开发

热点推荐