设计模式 之 《模板方法模式》
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; } */
相关文章推荐
- 传统路径导出 VS 直接路径导出(oracle exp direct=y)
- 心理成熟的十五条标准(转)
- HDu1241 DFS搜索
- HDu1241 DFS搜索
- 在Android Studio 中加入jar 和.so 文件
- Hibernate——(3)主键生成方式
- Hibernate——(3)主键生成方式
- HDU3067:小t的游戏
- 庞果网之字符串消除
- 中国证书CHINASSL正式启用中国证书.com
- 了解Activity的Intent用法
- linux shell脚本编程技巧介绍(一)
- LeetCode -- Single Number 代码分析
- C++编程——微生物增殖
- [Unity3D]AssetBundles的使用
- Java设计模式—单态模式(Singleton)
- Linux Shell笔记之准备篇
- [Unity3D]AssetBundles的使用
- Android Studio 不自动弹起代码提示功能解决办法 do not auto popup code completion
- 装饰模式(Decorator)