生成工厂方法模式的C++样例代码
时间: 2024-10-18 10:20:58 浏览: 22
c++设计模式-工厂方法模式
在C++中,工厂方法模式通常会创建一个抽象类或接口,然后由各个具体的工厂子类负责生产对应的对象。以下是一个简单的C++工厂方法模式的例子:
```cpp
// 定义一个抽象产品类
class Product {
public:
virtual ~Product() {}
virtual void operation() = 0;
};
// 定义一个抽象工厂接口
class Factory {
public:
virtual ~Factory() {}
virtual Product* createProduct() = 0;
};
// 具体的产品A
class ProductA : public Product {
public:
void operation() override { cout << "Performing Operation A..." << endl; }
};
// 具体的产品B
class ProductB : public Product {
public:
void operation() override { cout << "Performing Operation B..." << endl; }
};
// 具体的工厂A
class FactoryA : public Factory {
public:
Product* createProduct() override { return new ProductA(); }
};
// 具体的工厂B
class FactoryB : public Factory {
public:
Product* createProduct() override { return new ProductB(); }
};
int main() {
Factory* factory = FactoryA::instance(); // 根据需求选择特定工厂
Product* product = factory->createProduct();
product->operation();
return 0;
}
```
在这个例子中,`main`函数通过工厂接口创建了实际的产品对象,而具体是哪一种产品则是由工厂类决定的,这体现了工厂方法模式的灵活性。
阅读全文