工厂模式 使用c++
工厂模式是一种创建型设计模式,它提供了一种统一的方式来创建对象,而无需暴露对象的具体实现细节。
在C++中,可以通过以下步骤来实现工厂模式:
- 定义一个抽象基类,该类定义了对象的公共接口。
- 创建具体的派生类,实现抽象基类中定义的接口。
- 创建一个工厂类,该类负责根据客户端的请求来创建具体的对象。
- 在工厂类中,根据客户端的请求,使用条件语句或者其他方式来判断应该创建哪个具体的对象。
- 在客户端代码中,通过工厂类的接口来请求创建对象,而无需关心具体的对象实现细节。
下面是一个简单的示例代码:
// 抽象基类
class Product {
public:
virtual void operation() = 0;
};
// 具体的派生类
class ConcreteProductA : public Product {
public:
void operation() override {
// 具体的操作逻辑
}
};
class ConcreteProductB : public Product {
public:
void operation() override {
// 具体的操作逻辑
}
};
// 工厂类
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);
productA->operation();
Product* productB = factory.createProduct(2);
productB->operation();
delete productA;
delete productB;
return 0;
}
在上面的示例中,抽象基类 Product 定义了一个纯虚函数 operation(),具体的派生类 ConcreteProductA 和 ConcreteProductB 实现了这个接口。
工厂类 Factory 中的 createProduct() 方法根据客户端的请求,创建相应的具体对象,并返回抽象基类的指针。
客户端代码中,通过工厂类的接口来请求创建对象,并调用对象的操作方法。
注意在使用完对象后,需要手动释放内存,以避免内存泄漏
原文地址: https://www.cveoy.top/t/topic/iUpc 著作权归作者所有。请勿转载和采集!