课程作业七

请将随机生成数字、表达式的部分设计成:一个Random基类,基类中有random()方法。并由该基类派生出RandomNumber类、RandomOperation类,继承并覆盖父类方法。###

[课程作业七]{https://github.com/metamorphos/Circle/tree/master}
基类.

class Random
{
protected:
int n;//随机数
public:
Random(){};
~Random(){};
virtual void random()=0;
virtual char randomOperation()=0;
virtula int randomNumber()=0;
};

(派生类)生成随机数.

class Randomnumber:virtual public Random
{
protected:
int a[10];
public:
Randomnumber(){};
~Randomnumber(){};
virtual char randomOperation;
virtula int randomNumber;
int get_number(int i)
{
return a[i];
}
};

(派生类)生成随机运算符.

class RandomOperation:virtual public Random
{
protected:
    char b[10];                  //存储随机符号 
public:
    Randomoperator(){}
    ~Randomoperator(){}
    virtual char randomOperation();  //随机符号                                            
    virtual int randomNunber();                     
    char get_operation(int i)
    {
        return b[i];
    }
};

(派生类)生成随机式子.

class RandomExpression:public RandomOperation,public RandomNumber  
{
public:
    RandomExpression();                                         
    RandomExpression(RandomNumber &p1,RandomOperation &p2)      
    {
        for(int i=1;i<10;i++)
        {
            a[i]=p1.get_number(i);
        }
        for(int i=1;i<10;i++)
        {
            b[i]=p2.get_operation(i);
        }
    }
    void random(){};
    void random(char c[100]);
};

(各类的成员函数).

void RandomNumber::random()          
{
    for(int j=0;j<=10;j++)
    {
        n=rand()%10;
        a[j]=n;
    }
}
void RandomOperation::random()  
{
    for(int j=1;j<=10;j++)
    {
        switch(rand()%4)
        {
            case 0:operation[j]='+';break;
            case 1:operation[j]='-';break;
            case 2:operation[j]='*';break;
            case 3:operation[j]='/';break;
        }
    }
}

学习简单工厂模式###

理解:将用户的客户端的所需要求发送至简单工厂里,在这个工厂里负责生产满足客户要求的产品,这个产品是抽象多种产品聚合而成的,就像玩具的零件一样,要生产抽象a元件,生产抽象b元件等,这些零碎的元件有抽象产品直接掌管,不需客户端和工厂直接参与。
图片解析:

优点及缺点:
优点:因为分工明确,用户在使用时可以直接根据工厂类去创建所需的实例,有利于整个软件体系结构的优化。
缺点:工厂类就需要判断何时创建何种种类的产品,这就和创建何种种类产品的产品相互混淆在了一起,违背了单一职责,导致系统丧失灵活性和可维护性。
总而言之就是,就像一个公司,规模越大,效率越高,客户越多,同时一旦出了乱子,后果也是很大的。
[学习资料]{http://blog.csdn.net/weiwenlongll/article/details/6918164}

posted @ 2017-06-09 21:36  吾言  阅读(188)  评论(0编辑  收藏  举报