您的位置:首页 > 其它

设计模式 之 《模板方法模式》

2013-11-03 16:07 211 查看


#ifndef __TEMOLATE_METHOD_MODEL__
#define __TEMOLATE_METHOD_MODEL__

#include <string>
#include <iostream>
using namespace std;

/*
GOOD:把不变的代码部分都转移到父类中,将可变的代码用virtual留到子类重写

迪米特法则:如果两个类不直接通信,那么这两个类就不应当发生直接的相互作用。
如果一个类需要调用另一个类的某个方法的话,可以通过第三个类转发这个调用。

在类的结构设计上,每一个类都应该尽量降低成员的访问权限。
*/
class AbstractClass
{
public:
void show()
{
cout<<"我是"<<getName()<<endl;
}
protected:
virtual string getName() = 0;
};

class A : public AbstractClass
{
protected:
virtual string getName(){ return "A"; }
};

class B : public AbstractClass
{
protected:
virtual string getName(){ return "B"; }
};

#endif //__TEMOLATE_METHOD_MODEL__

/*
#include "TemplateModel.h"
int _tmain(int argc, _TCHAR* argv[])
{
AbstractClass* a = new A();
a->show();

AbstractClass* b = new B();
b->show();

return 0;
}
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: