博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
派生类&简单工厂模式
阅读量:5280 次
发布时间:2019-06-14

本文共 1146 字,大约阅读时间需要 3 分钟。

派生类&简单工厂模式

git链接:

题目描述的代码部分的解释

首先是声明一个Rand类作为父类,然后两个子类RandNumber类和RandOperation类,分别是随机生成0~9的数字和各种符号。

如果加上工厂的话,就是再写个RandFactory类,然后生产不同的两个类对象。(不过我写了工厂,代码中具体却没有实现它,感觉用不到。)

class Rand{ public:    virtual int randNum(); //随机数0-9 所以子类RandNumber可以不用重写该方法了};class RandNumber : public Rand{public:                   //默认构造析构函数了。};class RandOperation : public Rand{public:    int randNum();        //重写生成随机数 对应不同的符号    char symbol(int i);   //生成符号};class RandFactory       // 随机数工厂{public:    Rand* create(int type)   //创建产品 ,由type来决定哪个产品    {        Rand* temp = NULL;        switch(type)        {        case 1: temp = new RandNumber();            break;        case 2: temp = new RandOperation();            break;        default:            break;        }        return temp;    }};

简单工厂模式的学习

       对于这个学习的话,我是通过看别人的博客心得,毕竟这也是一种设计模式(工厂模式、抽象工厂模式之类的等等),或者看看官方文档。不过看别人写得文章就已经可以很好的理解了。

所谓的简单工厂模式,通过参数传递来决定要创建哪一个具体产品。
若不需延迟实例化(将实例化放到子类中),则在Factory中增加对应的创建方法即可,如:Product* CreateConcreteProduct(int i);
若需要延迟实例化,则在抽象Factory与具体ConcreteFactory中增加相应方法,在ConcreteFactory中实现方法Product* CreateConcreteProduct(int i)

转载于:https://www.cnblogs.com/yyf031602438/p/6959250.html

你可能感兴趣的文章
MySQL 5.7社区版安装实践
查看>>
vue-auto-focus: 控制自动聚焦行为的 vue 指令
查看>>
docker入门学习(四) 安装nginx及配置
查看>>
有人物联网数传终端设备在智慧电力和公共事业中的应用
查看>>
《剑指offer》第三_二题(不修改数组找出重复的数字)
查看>>
windows 核心编程第一章:关于错误
查看>>
好设计,迁移不费劲
查看>>
orz gzy
查看>>
JAVA源码分析------锁(1)
查看>>
HDU 4920 Matrix multiplication
查看>>
ACdream 1068
查看>>
会声会影毛玻璃制作
查看>>
HDU 2665 Kth number
查看>>
CodeChef DGCD Dynamic GCD
查看>>
记叙在人生路上对你影响最大的三位老师
查看>>
002.大数据第二天
查看>>
python装饰器
查看>>
树上的路径
查看>>
【转载】TCP好文
查看>>
系统平均负载
查看>>