C++设计模式之工厂模式
来源:互联网 发布:手机兼职问卷调查软件 编辑:程序博客网 时间:2024/06/06 01:33
//简单工厂方法enum CTYPE {COREA, COREB}; class SingleCore { public: virtual void Show() = 0;}; //单核A class SingleCoreA: public SingleCore { public: void Show() { cout<<"SingleCore A"<<endl; } }; //单核B class SingleCoreB: public SingleCore { public: void Show() { cout<<"SingleCore B"<<endl; } }; //唯一的工厂,可以生产两种型号的处理器核,在内部判断 class Factory { public: SingleCore* CreateSingleCore(enum CTYPE ctype) { if(ctype == COREA) //工厂内部判断 return new SingleCoreA(); //生产核A else if(ctype == COREB) return new SingleCoreB(); //生产核B else return NULL; } }; //工厂方法class SingleCore { public: virtual void Show() = 0;}; //单核A class SingleCoreA: public SingleCore { public: void Show() { cout<<"SingleCore A"<<endl; } }; //单核B class SingleCoreB: public SingleCore { public: void Show() { cout<<"SingleCore B"<<endl; } }; class Factory { public: virtual SingleCore* CreateSingleCore() = 0;}; //生产A核的工厂 class FactoryA: public Factory { public: SingleCoreA* CreateSingleCore() { return new SingleCoreA; } }; //生产B核的工厂 class FactoryB: public Factory { public: SingleCoreB* CreateSingleCore() { return new SingleCoreB; } }; //抽象工厂方法//单核 class SingleCore { public: virtual void Show() = 0;}; class SingleCoreA: public SingleCore { public: void Show() { cout<<"Single Core A"<<endl; } }; class SingleCoreB :public SingleCore { public: void Show() { cout<<"Single Core B"<<endl; } }; //多核 class MultiCore { public: virtual void Show() = 0;}; class MultiCoreA : public MultiCore { public: void Show() { cout<<"Multi Core A"<<endl; } }; class MultiCoreB : public MultiCore { public: void Show() { cout<<"Multi Core B"<<endl; } }; //工厂 class CoreFactory { public: virtual SingleCore* CreateSingleCore() = 0; virtual MultiCore* CreateMultiCore() = 0;}; //工厂A,专门用来生产A型号的处理器 class FactoryA :public CoreFactory { public: SingleCore* CreateSingleCore() { return new SingleCoreA(); } MultiCore* CreateMultiCore() { return new MultiCoreA(); } }; //工厂B,专门用来生产B型号的处理器 class FactoryB : public CoreFactory { public: SingleCore* CreateSingleCore() { return new SingleCoreB(); } MultiCore* CreateMultiCore() { return new MultiCoreB(); } };
阅读全文
0 0
- 设计模式之工厂模式(c++)
- C#--设计模式之简单工厂模式
- C#--设计模式之工厂方法模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 设计模式----工厂模式(c++)
- 【设计模式C++】工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之---工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之工厂模式
- 设计模式之-工厂模式
- GitHub完美适配Visual Studio-05 解决冲突
- 线程状态图
- 苹果电脑快捷锁屏的几种方法
- 欢迎使用CSDN-markdown编辑器
- goeasy+jquery+ckplayer实现动态实时视频弹幕
- C++设计模式之工厂模式
- android studio+grade配置构建
- ADO之连接数据库
- linux chkconfig命令参数及用法详解--linux系统服务设置命令
- VS2017部署uwp到树莓派问题解决
- VC中使用ADO操作数据库的方法.
- mysql优化——表分区
- VC中使用ADO操作数据库
- 一起Talk Android吧(第二十六回:Java包装类)