码迷,mamicode.com
首页 > 其他好文 > 详细

简单工厂类,有继承、虚函数重写、基类指针指向子类对象会发生多态(1)

时间:2018-10-08 20:42:20      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:creat   工厂   业务逻辑   lse   strcmp   类对象   修改   内聚   扩展   

class Fruit
{
public:
    virtual void get_fruit()
    {
        std::cout<<"Fruit:getFruit"<<std::endl;
    }
};

class Pear : public Fruit
{
public:
    virtual void get_fruit()
    {
        std::cout<<"Pear:getFruit"<<std::endl;
    }
};

class Banana : public Fruit
{
public:
    virtual void get_fruit()
    {
        std::cout<<"Banana:getFruit"<<std::endl;
    }
};

//dependency
class Factory
{
public:
    Fruit* Create(char *name)   //简单工厂的创建工作 业务逻辑在里面
    {
        if(strcmp(name,"Pear")==0)
        {
            return new Pear();
        }
        else if (strcmp(name,"Banana")==0)
        {
            return new Banana();
        }
        else
        {
            return NULL;
        }
    }
};

工厂类集中了所有实例的创建逻辑,所以“高内聚”方面做的并不好,当系统的具体产品不断增多时,可能会出现要求工厂类也要做相应的修改,扩展性并不是很好。

 

简单工厂类,有继承、虚函数重写、基类指针指向子类对象会发生多态(1)

标签:creat   工厂   业务逻辑   lse   strcmp   类对象   修改   内聚   扩展   

原文地址:https://www.cnblogs.com/mathyk/p/9756347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!