继承多态思想
继承使得基类得到充分利用,不需要重复定义相同的部分,多态使得不同的类对于同一消息做出不同的响应,传递不同的结果,使得程序更加灵活。
这次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() { }
};
简单工厂模式初步
虽然说有一些东西不是太清楚,但是我的理解是这样的:在初始化的过程中,要是这个过程很复杂的话,结构就会比较冗长,可读性也比较低,并且长的代码封装起来的话会带来一些负面的影响,所以就要尽量把长代码分割成小代码,再以后的修改时,只用对部分修改,这样工作效率也会比较高。因此,为了将初始化的工作从构造函数中分离,就可以采用工厂模式。
具体的例子我就不贴出来了,自己也在啃。想想工厂模式用在这次代码上应该还是在于不同的功能分离吧,使得类之间的联系降低。