美文网首页
设计模式-创建模式-简单工厂模式

设计模式-创建模式-简单工厂模式

作者: 阿棍儿_Leon | 来源:发表于2020-04-28 14:40 被阅读0次

    简单工厂模式是对若干种对象的创建过程进行了集中管理。
    这种模式一般用工厂生产产品来理解。使用时,用户首先创建或获取工厂对象,然后调用工程对象的创建方法去生产产品。
    以下代码对产品分类,Products是产品基类,ProductAProductB是具体产品类。

    #include <iostream>
    
    using namespace std;
    
    enum ProductType{
        ProductTypeA,
        ProductTypeB,
    };
    
    class Products
    {
    public:
        virtual void Display() = 0;
        virtual ~Products(){}
    };
    
    class ProductA:public Products
    {
    public:
        void Display()
        {
            cout<<__PRETTY_FUNCTION__<<endl;
        }
    };
    
    class ProductB:public Products
    {
    public:
        void Display()
        {
            cout<<__PRETTY_FUNCTION__<<endl;
        }
    };
    

    以下代码定义工厂类

    class Factory
    {
    public:
        Products* CreateProduct(ProductType Type)
        {
            switch (Type) {
            case ProductTypeA:
                return new ProductA();
                break;
            case ProductTypeB:
                return new ProductB();
                break;
            default:
                return nullptr;
                break;
            }
        }
    };
    

    以下代码用工厂类对象分别生产两类产品对象并使用(调用Display

    int main(void){
        Factory* factory = new Factory();
        Products* productA = factory->CreateProduct(ProductTypeA);
        productA->Display();
        Products* productB = factory->CreateProduct(ProductTypeB);
        productB->Display();
        delete factory;
        delete productA;
        delete productB;
        return 0;
    }
    

    输出

    virtual void ProductA::Display()
    virtual void ProductB::Display()
    

    相关文章

      网友评论

          本文标题:设计模式-创建模式-简单工厂模式

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