C++工厂模式实现方法详解
作者:WeekendFlower
时间:2025-11-28
浏览:0
工厂模式通过基类指针和多态实现对象创建解耦,定义抽象产品类Product并由ConcreteProductA和B实现use方法,工厂函数根据类型返回具体产品实例,main函数中调用use输出对应信息,集中管理对象创建,新增产品只需扩展工厂逻辑,需注意虚析构函数和内存管理。
工厂模式通过基类指针和多态实现对象创建解耦,定义抽象产品类Product并由ConcreteProductA和B实现use方法,工厂函数根据类型返回具体产品实例,main函数中调用use输出对应信息,集中管理对象创建,新增产品只需扩展工厂逻辑,需注意虚析构函数和内存管理。

工厂模式是一种创建型设计模式,用来解耦对象的创建过程。在C++中,通过基类指针和多态机制,可以实现一个简单的工厂模式,让程序在运行时根据需求创建不同的派生类对象。
定义产品基类
首先定义一个抽象的产品基类,提供统一的接口。具体的产品类将继承这个基类并实现其方法。
class Product { public: virtual ~Product() = default; virtual void use() const = 0; }; class ConcreteProductA : public Product { public: void use() const override { std::cout << "Using Product A\n"; } }; class ConcreteProductB : public Product { public: void use() const override { std::cout << "Using Product B\n"; } };实现简单工厂类
工厂类包含一个静态方法,根据输入参数决定创建哪种具体产品。调用者无需知道具体类名,只需通过工厂获取对象。
class SimpleFactory { public: static std::unique_ptr使用工厂创建对象
客户端代码通过工厂接口创建对象,而不是直接调用构造函数,从而降低耦合度。
int main() { auto product1 = SimpleFactory::createProduct('A'); auto product2 = SimpleFactory::createProduct('B'); if (product1) product1->use(); // 输出:Using Product A if (product2) product2->use(); // 输出:Using Product B return 0; }这种方式把对象的创建集中在一个地方,新增产品时只需修改工厂逻辑(或扩展为更灵活的工厂方法模式),原有代码基本不用动。基本上就这些,不复杂但容易忽略细节比如内存管理和虚析构函数。
作者最新文章
赤友清理大师
2026-09-16 17:43
南邮光擎智算团队:GaN基Micro-LED光计算芯片从理论到流片的突破
2026-09-08 18:35
多张照片怎么合成PDF文件?三种图片转PDF工具怎么选?
2026-09-03 17:04
Excel转PDF防乱版指南:在线与本地双方案及排版检查
2026-09-03 10:04
多个PDF怎么合并成一个?合并后顺序怎么检查?
2026-09-02 19:54
上一篇:
PHP变量嵌入onclick事件技巧
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































