huabei_li

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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  阅读(298)  评论(0编辑  收藏  举报