//以下是C++中的简单工厂模式示例代码:
//抽象产品类
#include <iostream>
using namespace std;
class Product
{
public:
virtual void use() = 0;
};
//具体产品类A
class ProductA : public Product
{
public:
void use() override
{
cout << "ProductA is used" << endl;
}
};
//具体产品类B
class ProductB : public Product
{
public:
void use() override
{
cout << "ProductB is used" << endl;
}
};
//工厂类,负责创建产品对象
class Factory
{
public:
Product* createProduct(int productType)
{
switch (productType)
{
case 1:
return new ProductA();
break;
case 2:
return new ProductB();
break;
default:
return nullptr;
break;
}
}
};
int main()
{
Factory factory;
Product* product1 = factory.createProduct(1);
product1->use();
delete product1;
Product* product2 = factory.createProduct(2);
product2->use();
delete product2;
return 0;
}
//在上述示例代码中,我们定义了一个抽象产品类Product,具体产品类ProductA和ProductB继承自该抽象类,实现了use()方法。
//
//我们声明了一个工厂类Factory,该工厂类包含一个创建产品对象的方法createProduct(),根据传入的参数,返回ProductA或ProductB的实例。
//
//在main()函数中,我们创建了一个Factory实例,使用其createProduct()方法创建了product1和product2对象,分别是ProductA和ProductB的实例。并且在使用完后,记得删除对象,以防止内存泄漏。
C++设计模式-工厂方法 factory method
最新推荐文章于 2024-09-09 23:37:48 发布