zoukankan      html  css  js  c++  java
  • 含继承多态思想的四则运算器和简单工厂模式初步

    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)

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

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

  • 相关阅读:
    SpringMVC获取参数的几种方式
    java实现邮箱发送邮件功能
    java实现屏幕截屏功能
    java生成验证码结合springMVC
    lodash实践之依据规则处理对象
    js深入之实现call、apply和bind
    js内存深入学习(二)
    js内存深入学习(一)
    web缓存策略之HTTP缓存大全
    Service Worker MDN英文笔记
  • 原文地址:https://www.cnblogs.com/031602418matt/p/6965355.html
Copyright © 2011-2022 走看看