C++实现简单工厂模式
时间: 2023-10-20 21:26:14 浏览: 89
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的最佳方式。简单工厂模式定义了一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。
以下是 C++ 实现简单工厂模式的示例代码:
```cpp
#include <iostream>
using namespace std;
// 抽象产品类
class Product {
public:
virtual void operation() = 0;
};
// 具体产品类 A
class ProductA : public Product {
public:
void operation() {
cout << "Product A operation." << endl;
}
};
// 具体产品类 B
class ProductB : public Product {
public:
void operation() {
cout << "Product B operation." << endl;
}
};
// 工厂类
class Factory {
public:
// 根据参数返回不同的产品实例
Product* createProduct(string type) {
if (type == "A") {
return new ProductA();
} else if (type == "B") {
return new ProductB();
} else {
return NULL;
}
}
};
int main() {
Factory* factory = new Factory();
Product* productA = factory->createProduct("A");
Product* productB = factory->createProduct("B");
productA->operation();
productB->operation();
delete productA;
delete productB;
delete factory;
return 0;
}
```
在上面的示例代码中,我们定义了一个抽象产品类 `Product`,它包含了一个纯虚函数 `operation()`,表示产品所能进行的操作。在具体产品类 `ProductA` 和 `ProductB` 中,我们实现了 `operation()` 函数。工厂类 `Factory` 中,我们定义了一个 `createProduct()` 函数,它根据传入的参数 `type` 返回不同的产品实例。在 `main()` 函数中,我们先通过工厂类创建了产品实例,然后调用了它们的 `operation()` 函数。最后,在程序结束时,我们释放了内存。
阅读全文