在C++中,工厂模式是一种设计模式,用于根据输入参数的不同创建不同类型的对象。这样可以将对象的创建过程与使用过程分离,提高代码的可扩展性和可维护性。
下面是一个使用C++工厂模式创建对象的示例:
#include<iostream> #include<string> // 基类 class Product { public: virtual void use() = 0; }; // 派生类A class ConcreteProductA : public Product { public: void use() override { std::cout << "Using ConcreteProductA"<< std::endl; } }; // 派生类B class ConcreteProductB : public Product { public: void use() override { std::cout << "Using ConcreteProductB"<< std::endl; } }; 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 ConcreteProductA Using ConcreteProductB 这样,我们就成功地使用C++工厂模式创建了不同类型的对象。当需要添加新的产品类型时,只需创建新的派生类并在工厂类中添加相应的创建逻辑即可。