工厂模式
2015-09-16 20:14
344 查看
涉及知识:纯虚函数,虚函数, 虚析构函数, 抽象基类
UML图:
更多uml参考http://www.myexception.cn/design-patterns/873878.html
应用实例:女娲造人
#include <iostream> using namespace std; class Human { public: virtual void speak() const = 0; virtual ~Human(){} }; class WhiteHuman : public Human { public: virtual void speak() const{ cout << "I'm White man" << endl; } }; class BlackHuman : public Human { public: virtual void speak() const{ cout << "I'm black man.." << endl; } }; class Factory { public: //如果声明时函数有const修饰,则定义时也必须加上const修饰 virtual Human *create_man() const = 0; virtual ~Factory(){} }; class WhiteFactory : public Factory { public: virtual Human *create_man() const{ return new WhiteHuman; //教训:要有意识的命名 } }; class BlackFactory : public Factory { public : virtual Human *create_man() const{ return new BlackHuman; } }; int main() { Factory *fc; fc = new WhiteFactory; Human *human; human = fc->create_man(); human->speak(); delete fc; delete human; }
相关文章推荐
- VC++创建和调用dll
- vim 配置集锦
- session的生命周期
- 前端性能优化(八)
- H5学习之旅-H5的元素属性(3)
- H5学习之旅-H5的元素属性(3)
- PX4(PIXHAWK)源码开发人员文档(三)——进程间通讯的开发者指南
- POJ 3268 Silver Cow Party(dijkstra最短路)
- UVA11205子集生成的应用
- TCP控制拥塞的四种算法:慢开始,拥塞避免,快重传,快恢复
- OC正则表达式
- H5学习之旅-H5的元素属性(3)
- UVa 12683 Odd and Even Zeroes(数论+数字DP)
- Source Insight 3.X utf8支持插件更新
- ssh整合 配置文件集锦
- 学习路线
- linux每个路由表的系统研究
- UIImageView
- 前端性能优化(七)
- Oracle主键、唯一键与唯一索引的区别