什么是工厂模式写一段代码来举个例子并详细说明
时间: 2023-03-30 13:04:46 浏览: 57
工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。在工厂模式中,我们使用工厂方法来创建对象,而不是直接使用 new 运算符来创建对象。这种方法可以帮助我们在不改变现有代码的情况下,轻松地添加新的对象类型。
以下是一个使用工厂模式的示例代码:
```
#include <iostream>
#include <string>
using namespace std;
// 定义一个抽象产品类
class Product {
public:
virtual void use() = ;
};
// 定义具体产品类
class ProductA : public Product {
public:
void use() {
cout << "使用产品A" << endl;
}
};
class ProductB : public Product {
public:
void use() {
cout << "使用产品B" << endl;
}
};
// 定义工厂类
class Factory {
public:
virtual Product* createProduct() = ;
};
// 定义具体工厂类
class FactoryA : public Factory {
public:
Product* createProduct() {
return new ProductA();
}
};
class FactoryB : public Factory {
public:
Product* createProduct() {
return new ProductB();
}
};
int main() {
// 使用工厂A创建产品A
Factory* factoryA = new FactoryA();
Product* productA = factoryA->createProduct();
productA->use();
// 使用工厂B创建产品B
Factory* factoryB = new FactoryB();
Product* productB = factoryB->createProduct();
productB->use();
return ;
}
```
在上面的代码中,我们定义了一个抽象产品类 Product 和两个具体产品类 ProductA 和 ProductB。我们还定义了一个抽象工厂类 Factory 和两个具体工厂类 FactoryA 和 FactoryB。每个具体工厂类都实现了 createProduct 方法来创建具体产品类的实例。
在 main 函数中,我们使用 FactoryA 创建了 ProductA 的实例,并使用 FactoryB 创建了 ProductB 的实例。这样,我们就可以轻松地添加新的产品类型,而不需要修改现有代码。