抽象工厂
来源:互联网 发布:什么是网络信息收集 编辑:程序博客网 时间:2024/06/11 02:41
抽象工厂模式,应用于拥有产品组的情形。
#include <iostream>using namespace std;//一个学习用品的工厂类,其中又分是哪个产品种类,产品又分三个色系//红色:笔,笔记本,书包//蓝色:笔,笔记本,书包//绿色:笔,笔记本,书包class Product{public: virtual void show(){cout<<"Porduct"<<endl;}};//红色系class RedPen:public Product{public: void show(){cout<<"RedPen"<<endl;}};class RedNoteBook:public Product{public: void show(){cout<<"RedNoteBook"<<endl;}};class RedBag:public Product{public: void show(){cout<<"RedBag"<<endl;}};//蓝色系class BluePen:public Product{public: void show(){cout<<"BluePen"<<endl;}};class BlueNoteBook:public Product{public: void show(){cout<<"BlueNoteBook"<<endl;}};class BlueBag:public Product{public: void show(){cout<<"BlueBag"<<endl;}};//绿色系class GreenPen:public Product{public: void show(){cout<<"GreenPen"<<endl;}};class GreenNoteBook:public Product{public: void show(){cout<<"GreenNoteBook"<<endl;}};class GreenBag:public Product{public: void show(){cout<<"GreenBag"<<endl;}};//工厂基类class Factory{public: virtual Product* getPen(){} virtual Product* getNoteBook(){} virtual Product* getBag(){}};//红色系工厂类class RedFactory:public Factory{public: Product* getPen(){return new RedPen();} Product* getNoteBook(){return new RedNoteBook();} Product* getBag(){return new RedBag();}};//蓝色系工厂类class BlueFactory:public Factory{public: Product* getPen(){return new BluePen();} Product* getNoteBook(){return new BlueNoteBook();} Product* getBag(){return new BlueBag();}};//绿色系工厂类class GreenFactory:public Factory{public: Product* getPen(){return new GreenPen();} Product* getNoteBook(){return new GreenNoteBook();} Product* getBag(){return new GreenBag();}};int main(int argc, char *argv[]){ Factory *redFty=new RedFactory(); Product *redPen=redFty->getPen(); if(redPen!=NULL) redPen->show(); Product* redNoteBook=redFty->getNoteBook(); if(redNoteBook!=NULL) redNoteBook->show(); Product* redBag=redFty->getBag(); if(redBag!=NULL) redBag->show(); return 0;}
阅读全文
0 0
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- bzoj3564 信号增幅仪【最小圆覆盖+坐标变换】
- 35.开源项目--git发起一个公开项目
- 5.8 继承与多态
- java反射学习笔记(3)---使用Class来获取方法、成员变量、构造函数信息
- 安卓 SurfaceView 和 View 的区别和使用方法
- 抽象工厂
- [BZOJ4397]Breed Counting-前缀和乱搞
- X86CPU对中断的硬件支持
- AlexNet模型
- 初识配置文件与反射
- LyX,所见即所得--利用Latex来排版的文件编辑软体
- 连接VirtualBox下的CentOS
- java代码在内存体现
- [知了堂学习笔记]_Java中session的学习