工厂方法模式

来源:互联网 发布:java的ip地址校验 编辑:程序博客网 时间:2024/05/30 23:34


一个工厂负责一个产品
编程实例:
// this is a example for test factory method
#include <iostream>

using namespace std;

//abstract food
class baseFish
{
    public:
//        virtual ~baseFish(){};
        virtual void getFood(){};
};

class steamedFish:public baseFish
{
    virtual void getFood()
    {
        cout << "this steamed fish" <<endl;
    };
};

class roastFish:public baseFish
{
        virtual void getFood()
        {
               cout << "this roast fish" <<endl;
        };
};


//abstract factory
class baseFactory
{
public:
//    virtual ~baseFactory(){}
    virtual baseFish* createFood(){};
};

class steamedFishFactory:public baseFactory
{
public:
    baseFish * createFood()
    {
        return new steamedFish();
    };
};

class roastFishFactory:public baseFactory
{
    public:
        baseFish * createFood()
        {
            return new roastFish;
        };
};

int main()
{
    baseFactory *factory = new steamedFishFactory;
    baseFish *fish = factory->createFood();
    fish->getFood();

    return 0;
}
抽象类不可以定义对象,可以定义指针

原创粉丝点击