C++工厂模式

2022/7/27 1:23:48

本文主要是介绍C++工厂模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

意图

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Facotry Method 使一个类的实例化延迟到其子类。

适用性

  • 当一个类不知道它所必须创建的对象的类的时候
  • 当一个类希望由它的子类来指定它所创建的对象的时候
  • 当类创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类时代理者局部化的时候

示意性代码

#include <iostream>

using namespace std;

class Product {

};

class ConcreteProductA : public Product {

};

class ConcreteProductB : public Product {

};

class Creator {
public:
    virtual Product* FactoryMethod() = 0;
};

class ConcreteCreatorA : public Creator {
    Product* FactoryMethod() override {
        return new ConcreteProductA();
    }
};

class ConcreteCreatorB : public Creator {
    Product* FactoryMethod() override {
        return new ConcreteProductB();
    }
};

class Client {
private:
    Product* _product;

public:
    Client(Creator* creator) {
        _product = creator->FactoryMethod();
    }

    ~Client() {
        delete _product;
    }
};

int main() {
    Creator* creator = new ConcreteCreatorB();
    Client client(creator);
}


这篇关于C++工厂模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程