派生类&简单工厂模式

派生类&简单工厂模式

git链接:
Operation3.1.1

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

首先是声明一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值