cplus实现工厂模式代码
时间: 2024-01-25 09:03:13 浏览: 164
工厂模式代码实现
4星 · 用户满意度95%
以下是一个简单的 C++ 工厂模式实现代码示例:
```
#include <iostream>
#include <string>
using namespace std;
class Product {
public:
virtual void use() = 0;
};
class ProductA : public Product {
public:
void use() {
cout << "Product A is used." << endl;
}
};
class ProductB : public Product {
public:
void use() {
cout << "Product B is used." << endl;
}
};
class Factory {
public:
virtual Product* createProduct() = 0;
};
class FactoryA : public Factory {
public:
Product* createProduct() {
return new ProductA();
}
};
class FactoryB : public Factory {
public:
Product* createProduct() {
return new ProductB();
}
};
int main() {
Factory* factory = new FactoryA();
Product* product = factory->createProduct();
product->use();
delete product;
delete factory;
factory = new FactoryB();
product = factory->createProduct();
product->use();
delete product;
delete factory;
return 0;
}
```
该代码定义了 `Product` 接口和两个实现类 `ProductA` 和 `ProductB`,以及 `Factory` 接口和两个实现类 `FactoryA` 和 `FactoryB`。在 `main` 函数中,我们先使用 `FactoryA` 创建一个 `ProductA` 实例并调用其 `use` 方法,然后再使用 `FactoryB` 创建一个 `ProductB` 实例并调用其 `use` 方法。可以看到,通过工厂模式,我们可以将具体对象的创建过程与使用过程分离开来,使得代码更加灵活和可扩展。
阅读全文