C++实现简单工厂模式
时间: 2023-06-18 14:04:07 浏览: 122
简单工厂模式C语言实现
简单工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在该模式中,通过一个工厂类来创建对应的实例对象,并返回给客户端使用。
下面是一个 C++ 的简单工厂模式实现示例:
```cpp
#include <iostream>
using namespace std;
// 抽象产品类
class Product {
public:
virtual void use() = 0;
};
// 具体产品类 A
class ConcreteProductA : public Product {
public:
void use() override {
cout << "This is ConcreteProductA." << endl;
}
};
// 具体产品类 B
class ConcreteProductB : public Product {
public:
void use() override {
cout << "This is ConcreteProductB." << endl;
}
};
// 工厂类
class Factory {
public:
Product* createProduct(int type) {
if (type == 1) {
return new ConcreteProductA();
} else if (type == 2) {
return new ConcreteProductB();
} else {
return nullptr;
}
}
};
int main() {
Factory factory;
Product* productA = factory.createProduct(1);
Product* productB = factory.createProduct(2);
productA->use();
productB->use();
delete productA;
delete productB;
return 0;
}
```
在上面的示例中,我们定义了一个抽象产品类 `Product`,并派生出两个具体产品类 `ConcreteProductA` 和 `ConcreteProductB`。然后我们定义了一个工厂类 `Factory`,其中包含了一个工厂方法 `createProduct`,用于根据传入的参数创建对应的产品实例对象。
在客户端代码中,我们实例化了一个工厂对象 `factory`,并通过调用工厂方法 `createProduct` 创建了两个产品实例对象 `productA` 和 `productB`,分别输出了对应的信息。最后在程序结束时,我们需要手动释放这两个对象所占用的内存,以免造成内存泄漏。
阅读全文