简单工厂通过封装对象创建过程提升代码灵活性,示例中定义了Product基类及ConcreteProductA、ConcreteProductB两个实现类,SimpleFactory类根据字符参数创建对应产品实例,客户端通过工厂静态方法获取对象并调用use方法,输出“Using Product A”和“Using Product B”,该模式集中管理对象创建,适用于产品稳定的简单系统。

工厂模式用于将对象的创建过程封装起来,使代码更灵活、易于扩展。简单工厂方法不是设计模式中的“正式”模式,但它是理解工厂思想的良好起点。下面通过一个简单的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 Product* createProduct(char type) {
switch (type) {
case 'A': return new ConcreteProductA();
case 'B': return new ConcreteProductB();
default: return nullptr;
}
}
};
客户端通过工厂创建对象,无需知道具体类名:
立即学习“C++免费学习笔记(深入)”;
int main() {
Product* product1 = SimpleFactory::createProduct('A');
Product* product2 = SimpleFactory::createProduct('B');
if (product1) {
product1->use();
delete product1;
}
if (product2) {
product2->use();
delete product2;
}
return 0;
}
输出结果:
Using Product A
Using Product B
简单工厂把对象创建集中在一个地方,客户端无需关心实例化细节。虽然它不完全符合开闭原则(新增产品需修改工厂代码),但在产品种类稳定的小型系统中非常实用。基本上就这些。
以上就是C++工厂模式实现 简单工厂方法示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号