含继承多态思想的四则运算器和简单工厂模式初步

github

继承多态思想

继承使得基类得到充分利用,不需要重复定义相同的部分,多态使得不同的类对于同一消息做出不同的响应,传递不同的结果,使得程序更加灵活。

这次Random类下有两个派生类,分别负责生成随机数和生成随机字符的功能。在使用时,random()函数在不同的类下容易出现二义性,所以要注意所属的使用。

如果要在整个代码都改成用类的话时间可能来不及,所以在主函数里偷了个懒,减少了很多的工作量。

class Random
{
    public:
        Random() { }
        void random() { }
        ~Random() { }
};
class RandomNumber: public Random
{
    int num;
    public:
        RandomNumber() {}
        int random()
        {
            srand((unsigned)time(NULL));
            num=rand()%10+48;
            return num;
        }
        ~RandomNumber() { } 
};
class RandomOperator: public Random
{
    char oper;
    public:
        Randomoperation() { }
        char random()
        {
            srand((unsigned)time(NULL));
            switch(rand()%4)
            {
                case 0:oper= '+';
                case 1:oper= '-';
                case 2:oper= '*';
                default:oper= '/';
            }
            return oper;
        }
        ~Randomoperation() {    }
};

简单工厂模式初步

网上的入门介绍不少,比如c++工厂模式(Factory method)

虽然说有一些东西不是太清楚,但是我的理解是这样的:在初始化的过程中,要是这个过程很复杂的话,结构就会比较冗长,可读性也比较低,并且长的代码封装起来的话会带来一些负面的影响,所以就要尽量把长代码分割成小代码,再以后的修改时,只用对部分修改,这样工作效率也会比较高。因此,为了将初始化的工作从构造函数中分离,就可以采用工厂模式。

具体的例子我就不贴出来了,自己也在啃。想想工厂模式用在这次代码上应该还是在于不同的功能分离吧,使得类之间的联系降低。

posted on 2017-06-09 18:34 huabei_li 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/031602418matt/p/6965355.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值