网页编辑用什么软件,深圳seo优化seo优化,合肥光束网站建设,盐城网站建设系统公司Factory模式是一种创建型设计模式#xff0c;用于封装对象的实例化过程。它提供了一个统一的接口来创建不同类型的对象#xff0c;而无需暴露具体的实例化逻辑给客户端。
#include iostream
#include memory// AbstractProduct#xff08;抽象产品类#…Factory模式是一种创建型设计模式用于封装对象的实例化过程。它提供了一个统一的接口来创建不同类型的对象而无需暴露具体的实例化逻辑给客户端。
#include iostream
#include memory// AbstractProduct抽象产品类定义产品共同的接口
class Product {
public:virtual void operation() 0;
};// ConcreteProductA具体产品类A
class ConcreteProductA : public Product {
public:void operation() override {std::cout ConcreteProductA operation std::endl;}
};// ConcreteProductB具体产品类B
class ConcreteProductB : public Product {
public:void operation() override {std::cout ConcreteProductB operation std::endl;}
};// Factory工厂类负责创建具体产品对象
class Factory {
public:std::unique_ptrProduct createProduct(int type) {switch (type) {case 1:return std::make_uniqueConcreteProductA();case 2:return std::make_uniqueConcreteProductB();default:return nullptr;}}
};int main() {Factory factory;std::unique_ptrProduct productA factory.createProduct(1);if (productA)productA-operation();std::unique_ptrProduct productB factory.createProduct(2);if (productB)productB-operation();return 0;
}抽象产品类Product它定义了产品的共同接口。具体的产品类ConcreteProductA和ConcreteProductB继承自抽象产品类实现了各自的具体操作。工厂类Factory负责创建具体产品对象。它根据传入的类型参数在createProduct()方法中使用简单的条件语句创建相应的产品对象。此处使用std::unique_ptr来管理创建的产品对象以确保资源的正确释放。