设计模式——模板方法模式(C++)
来源:互联网 发布:linux i2c驱动 编辑:程序博客网 时间:2024/06/05 03:28
/*****************************************Copyright (c) 2016 Jingshuang Hu@filename:Class.h@datetime:2016.09.16@author:HJS@e-mail:jingshuang_hu@163.com@blog:http://blog.csdn.net/hujingshuang*****************************************/#ifndef _CLASS_H#define _CLASS_H// 抽象类:定义算法的框架,将一些步骤延迟到子类中去。// 在不改变算法框架结构的情况下,进行代码复用class AbstractClass {public: virtual void run(); virtual void fun1() = 0; virtual void fun2() = 0; virtual void fun3() = 0;};// 具体类A:实现抽象类中的方法,完成具体算法class concreteClassA : public AbstractClass { virtual void fun1(); virtual void fun2(); virtual void fun3();};// 具体类B:实现抽象类中的方法,完成具体算法class concreteClassB : public AbstractClass { virtual void fun1(); virtual void fun2(); virtual void fun3();};#endif // _CLASS_H
/*****************************************Copyright (c) 2016 Jingshuang Hu@filename:Class.cpp@datetime:2016.09.16@author:HJS@e-mail:jingshuang_hu@163.com@blog:http://blog.csdn.net/hujingshuang*****************************************/#include "Class.h"#include <iostream>using namespace std;void AbstractClass::run() { this->fun1(); this->fun2(); this->fun3();}void AbstractClass::fun1() {}void AbstractClass::fun2() {}void AbstractClass::fun3() {}void concreteClassA::fun1() { cout << "吃咖啡" << endl;}void concreteClassA::fun2() { cout << "吃中。。。" << endl;}void concreteClassA::fun3() { cout << "吃完了" << endl;}void concreteClassB::fun1() { cout << "逛街" << endl;}void concreteClassB::fun2() { cout << "逛中。。。" << endl;}void concreteClassB::fun3() { cout << "逛完了" << endl;}
/*****************************************Copyright (c) 2016 Jingshuang Hu@filename:main.cpp@datetime:2016.09.16@author:HJS@e-mail:jingshuang_hu@163.com@blog:http://blog.csdn.net/hujingshuang*****************************************/#include <iostream>#include "Class.h"using namespace std;int main() { AbstractClass* class1 = new concreteClassA(); class1->run(); AbstractClass* class2 = new concreteClassB(); class2->run(); system("pause"); return 0;}
1 0
- 设计模式——模板方法模式(C++)
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 【设计模式】——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式——模板方法模式
- 设计模式—模板方法模式
- 抛开自私谈发展
- VC++修改应用程序的外观
- (转载)jstl中<c:forEach>的用法
- 了解测试
- Random-0至100间的50个随机数
- 设计模式——模板方法模式(C++)
- 程序员之禅
- 通过过滤器解决post方式请求参数编码问题和响应编码问题
- 在复杂的项目开发中使用结对编程
- Android三种播放视频的方式
- 浏览器快捷方式被流氓不定时调戏肿么办
- ACM C++ 计算两点间的距离
- Struts2.0学习笔记---类型转换
- 一个很简单的查看电脑所支持的最大内存的方法