如何用C++工厂模式创建对象

   2024-09-30 3350
核心提示:在C++中,工厂模式是一种设计模式,用于根据输入参数的不同创建不同类型的对象。这样可以将对象的创建过程与使用过程分离,提高

在C++中,工厂模式是一种设计模式,用于根据输入参数的不同创建不同类型的对象。这样可以将对象的创建过程与使用过程分离,提高代码的可扩展性和可维护性。

下面是一个使用C++工厂模式创建对象的示例:

首先,定义一个基类(Product)和一些派生类(ConcreteProductA, ConcreteProductB):
#include<iostream>#include<string>// 基类class Product {public:    virtual void use() = 0;};// 派生类Aclass ConcreteProductA : public Product {public:    void use() override {        std::cout << "Using ConcreteProductA"<< std::endl;    }};// 派生类Bclass ConcreteProductB : public Product {public:    void use() override {        std::cout << "Using ConcreteProductB"<< std::endl;    }};
接下来,定义一个工厂类(Factory),用于根据输入参数创建不同类型的对象:
class Factory {public:    static Product* createProduct(const std::string& type) {        if (type == "A") {            return new ConcreteProductA();        } else if (type == "B") {            return new ConcreteProductB();        } else {            return nullptr;        }    }};
最后,在主函数中使用工厂类创建对象并调用其方法:
int main() {    // 创建对象    Product* productA = Factory::createProduct("A");    Product* productB = Factory::createProduct("B");    // 使用对象    productA->use();    productB->use();    // 释放内存    delete productA;    delete productB;    return 0;}

运行上述代码,将会输出:

Using ConcreteProductAUsing ConcreteProductB

这样,我们就成功地使用C++工厂模式创建了不同类型的对象。当需要添加新的产品类型时,只需创建新的派生类并在工厂类中添加相应的创建逻辑即可。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号