课程作业七
简单工厂模式
-
简单工厂模式的定义: 根据传入的参数即可返回需要的对象,而不需要知道具体的类名;
-
简要说明:简单工厂把一类需求的不同实现集合起来,这样通过传入不同的需求就可以实现不同的效果。
-
举个例子:以俄罗斯方块的变形来说,每个不同的俄罗斯方块都有不同的变形效果,将这些不同变形的实现整合在一起,那么只需传入一个变形命令就可以执行相应的变形。
优缺点
-
优点 外部只需要知道怎么使用,不需要了解具体的实现过程,简单易用。
-
缺点:虽然外部调用方便,可正是由于其高度内聚,所以首先不利于拓展,其次一旦发生逻辑错误将很难修改。
#include<iostream>
#include<string>
#include <stdlib.h>
#include <ctime>
using namespace std;
class random
{
public:
virtual char getrandom()=0 ;
};
class rnum :public random//随机数字
{
public:virtual char getrandom()
{
int n;
n = rand() % 10;
return n + '0';
}
};
class rope :public random//随机运算符
{
public:virtual char getrandom()
{
int n;
n = rand() % 4;
switch (n)
{
case 0:return '+';
case 1:return '-';
case 2:return '*';
case 3:return '/';
}
}
};
class randomfactory
{
public:char randomsign(int n)
{
char sign;
random *r=NULL;
if(n%2==0)
{
r=new rnum;
sign=r->getrandom();
}
else
{
r=new rope;
sign=r->getrandom();
}
return sign;
}
};