C++ 简单工厂模式
时间: 2023-06-21 18:17:27 浏览: 110
C++简单工厂模式教学的视频
C++ 简单工厂模式是一种创建型设计模式,它通过提供一个工厂类来创建产品的实例,而不是直接通过调用构造函数来创建实例。简单工厂模式可以将产品的创建过程和客户端分离,使得客户端只需要知道产品的接口,而不需要知道具体的实现方式。
在简单工厂模式中,通常会有一个抽象产品类或者接口,定义了产品的基本属性和方法,具体产品类实现了抽象产品类或者接口中的方法。工厂类负责根据客户端的需求创建具体的产品实例。客户端只需要通过工厂类来创建产品实例,而不需要知道实际的创建细节。
以下是一个简单工厂模式的示例代码:
```c++
#include <iostream>
using namespace std;
// 抽象产品类
class Product {
public:
virtual void operation() = 0;
};
// 具体产品类A
class ProductA : public Product {
public:
void operation() {
cout << "ProductA operation" << endl;
}
};
// 具体产品类B
class ProductB : public Product {
public:
void operation() {
cout << "ProductB operation" << endl;
}
};
// 工厂类
class Factory {
public:
Product* createProduct(char type) {
switch(type) {
case 'A':
return new ProductA();
case 'B':
return new ProductB();
default:
return nullptr;
}
}
};
// 客户端
int main() {
Factory factory;
Product* productA = factory.createProduct('A');
productA->operation(); // 输出: ProductA operation
Product* productB = factory.createProduct('B');
productB->operation(); // 输出: ProductB operation
delete productA;
delete productB;
return 0;
}
```
在上面的代码中,抽象产品类 `Product` 定义了产品的基本属性和方法,具体产品类 `ProductA` 和 `ProductB` 实现了抽象产品类中的方法。工厂类 `Factory` 根据客户端传入的参数来创建具体的产品实例。客户端只需要通过工厂类来创建产品实例,而不需要知道实际的创建细节。
阅读全文