简单工厂模式(C++)

#include <iostream>
using namespace std;

class Fruit
{
public :
    virtual void  getFruit() = 0;
};

class Banana :public Fruit
{
public :
    virtual void getFruit()
    {
        printf("我是香蕉");
    }
};
class Apple :public Fruit
{
public:
    virtual void getFruit()
    {
        printf("我是苹果");
    }
};

class  Factory
{
public:
    Fruit *create(char *p)
    {
        if (strcmp(p, "banana") == 0)
        {
            return new Banana;
        }
        else if (strcmp(p, "Apple") == 0)
        {
            return new Apple;
        }
        else
        {
            return NULL;
        }
    }

};

void main()
{
    Factory *fact=new Factory;
    Fruit *fru;
    fru=fact->create("banana");
    fru->getFruit();
    fru = fact->create("Apple");
    fru->getFruit();
}

 

posted on 2016-03-26 11:05  Geography爱好者  阅读(203)  评论(0编辑  收藏  举报

导航