factory模式

作者: 老练子丶2017 | 来源:发表于2017-11-17 10:37 被阅读0次

    主要用来解决两个问题

    1.将类创建的实例延迟到子类

    2.提供类创建接口(将project创建以factory接口形式给出)

    factory.h

    #ifndef _FACTORY_H

    #define _FACTORY_H

    #include <iostream>

    using namespace std;

    class Product

    {

    public:

    virtual ~Product() {};

    protected:

    Product() {}

    };

    class RealProduct : public Product

    {

    public:

    RealProduct() {

    cout << "RealProduct" << endl;

    }

    ~RealProduct() {}

    };

    class Factory

    {

    public:

    virtual ~Factory() {}

    virtual Product* CreateProduct()=0;

    protected:

    Factory() {}

    };

    class RealFactory : public Factory

    {

    public:

    RealFactory() {}

    ~RealFactory() {}

    Product* CreateProduct() {

    return new RealProduct;

    }

    };

    #endif // _FACTORY_H

    factory.cpp

    #include "factory.h"

    int main()

    {

    RealFactory *f = new RealFactory;

    f->CreateProduct();

    return 0;

    }

    编译:make factory

    相关文章

      网友评论

        本文标题:factory模式

        本文链接:https://www.haomeiwen.com/subject/qwidvxtx.html