工厂模式通过基类指针和多态实现对象创建解耦,定义抽象产品类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实现简单工厂类
工厂类包含一个静态方法,根据输入参数决定创建哪种具体产品。调用者无需知道具体类名,只需通过工厂获取对象。
class SimpleFactory { public: static std::unique_ptr使用工厂创建对象
客户端代码通过工厂接口创建对象,而不是直接调用构造函数,从而降低耦合度。
立即学习“C++免费学习笔记(深入)”;
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; }这种方式把对象的创建集中在一个地方,新增产品时只需修改工厂逻辑(或扩展为更灵活的工厂方法模式),原有代码基本不用动。基本上就这些,不复杂但容易忽略细节比如内存管理和虚析构函数。










