作业七-四则运算与简单工厂模式初步结合

题目连接

题目描述

  • 请将随机生成数字、表达式的部分设计成:一个Random基类,基类中有random()方法。并由该基类派生出RandomNumber类、RandomOperation类,继承并覆盖父类方法。
  • 学习简单工厂模式,思考能否将该模式运用到题目的第一点要求中。

作业要求

  • 体会继承和多态的思想
  • 发表一篇博客,博客内容为:提供本次作业的github链接,题目描述的代码部分的解释、简单工厂模式的学习。

过程

  • 通过简单工厂模式的学习与尝试,事先自己写个小程序在 简单工厂的初步尝试博客中有说明
  • 按照作业要求,我将本来随机数放在表达式类中,现在从中分离出一个随机基类,两个派生类
  • 与上一篇博客相结合,在基类中建立两个虚函数(应该一个也可以)一个用于转换成字符,一个用于生成随机数
  • 之后创建一个工厂类,工厂类的内容与上篇博客内容一样,改成RandomFactroy类。
  • github

修改的部分代码:


class Random {
	public:
		Random(){}
		~Random(){}
		virtual char get_rand(int k) { return ' '; }
		virtual int create() {	return -1;	}
};
class randomNumber :public Random
{
	public:
		randomNumber(){}
		~randomNumber(){}
		virtual int create();
		virtual char get_rand(int k);
};
class randomOperator : public Random
{
public:
	randomOperator(){}
	~randomOperator(){}
	virtual int create();
	virtual char get_rand(int k);
};



/*以下为相应的一些函数内容*/

int randomNumber::create()
{
	return rand() % 10;
}
int  randomOperator::create()
{
	return rand() % 4;
}
char randomOperator::get_rand(int k)
{
	switch (k)
	{
	case 0:return '+';
	case 1:return '-';
	case 2:return '*';
	case 3:return '/';
	default:return ' ';
	}
}
char randomNumber::get_rand(int k)
{
	return k + 48;
}

生成表达式函数中的改变:

过程中的问题:

  • 在相结合方面,没有遇到大问题,毕竟在上一篇博客有一些尝试
  • 主要是在于git上传时又出现错误了
  • 因为之前进行界面编辑的尝试,是写在本地库中,没有上传,到这次作业,进行上传,发现文件大小超过100M是无法上传的,。
  • 尝试了好多方法,都出现了一些错误,一直改不出来,看完网上博客发现,自己已经进入一个麻烦的境地。
  • 最后返回到之前作业五的git版本,再进行修改,上传。

体会:

对于利用简单工厂模式,我认为降低了其耦合性,也会使得代码变得比较有条理。
对于git等等,一些遇到问题,先不要自己随便乱按之类的,出错了,很容易到达一种不可挽回的地步,所以应该去网上查查解决方法,按照网上操作,去完成。

附上一些git的链接

官方文档
大文件解决方案

posted @ 2017-06-07 18:15  Linese  阅读(466)  评论(0编辑  收藏  举报