工厂模式的核心是封装对象创建过程,避免直接new;C++中常用简单工厂和工厂方法模式;通过抽象产品接口Product及ConcreteProductA等具体实现,实现多态与解耦。

工厂模式的核心是把对象的创建过程封装起来,让调用方不直接 new 具体类,而是通过一个统一接口获取实例。C++ 中常用的是简单工厂(非 GoF 标准但实用)和工厂方法(标准 GoF 模式),下面用一个清晰、可运行的例子说明。
定义抽象产品接口
所有具体产品都要继承这个基类,保证多态性:
class Product {
public:
virtual ~Product() = default;
virtual void operation() const = 0;
};登录后复制
实现多个具体产品
每个子类提供自己的行为逻辑:
class ConcreteProductA : public Product {
public:
void operation() const override {
std::cout << "ConcreteProductA executed.\n";
}
};
class ConcreteProductB : public Product {
public:
void operation() const override {
std::cout << "ConcreteProductB executed.\n";
}
};登录后复制
实现简单工厂类
工厂负责根据参数决定创建哪个具体类型,返回智能指针更安全:
立即学习“C++免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~