c++工厂设计模式
作者:野牛程序员:2023-06-15 16:04:52 C++阅读 2718
C++工厂设计模式(Factory Design Pattern)是一种创建型设计模式,用于实现对象的创建,而无需暴露创建逻辑给客户端代码。工厂设计模式提供一个接口,用于创建对象,但具体的对象实例化过程由工厂类来完成。
以下是一个简单的示例来说明如何在C++中使用工厂设计模式:
#include <iostream> using namespace std; // 抽象产品类 class Product { public: virtual void use() = 0; }; // 具体产品类A class ConcreteProductA : public Product { public: void use() { cout << "Using ConcreteProductA" << endl; } }; // 具体产品类B class ConcreteProductB : public Product { public: void use() { cout << "Using ConcreteProductB" << endl; } }; // 工厂方法类型定义 typedef Product* (*FactoryMethod)(); // 具体工厂类A class ConcreteFactoryA { public: static Product* createProduct() { return new ConcreteProductA(); } }; // 具体工厂类B class ConcreteFactoryB { public: static Product* createProduct() { return new ConcreteProductB(); } }; int main() { // 使用具体工厂A创建产品A FactoryMethod factoryA = ConcreteFactoryA::createProduct; Product* productA = factoryA(); productA->use(); // 使用具体工厂B创建产品B FactoryMethod factoryB = ConcreteFactoryB::createProduct; Product* productB = factoryB(); productB->use(); delete productA; delete productB; return 0; }
在这个例子中,我们定义了一个函数指针类型 FactoryMethod
,它指向一个返回 Product*
类型的函数。具体工厂类 ConcreteFactoryA
和 ConcreteFactoryB
中的 createProduct
方法被声明为静态方法,返回对应的具体产品实例。
通过使用函数指针作为工厂方法类型,我们可以动态选择使用不同的具体工厂来创建产品实例,从而实现工厂设计模式的效果。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C++ 模块化设计
- 下一篇:C++ 静态加载和动态加载的优缺点