C++实现:21种设计模式详解与工厂方法应用

需积分: 16 2 下载量 48 浏览量 更新于2024-09-30 收藏 1.11MB PDF 举报
"本文将深入解析和实现C++中的21种常见设计模式之一——Factory模式。Factory模式的核心作用在于定义一个用于创建对象的接口,使得子类能够决定实例化哪个具体类。这种模式将对象的创建过程解耦,允许在运行时动态选择和创建对象,增强了代码的灵活性和可扩展性。 UML结构图中,主要包括两个抽象基类:Product,它是所有创建出来的产品对象的抽象父类;而Factory则是负责创建产品的抽象工厂类,其主要职责是通过纯虚函数FactoryMethod来实现具体产品类的创建。这种设计模式要求,每当增加一个新的Product子类,都需要相应地创建一个Factory派生类,保持了一对一的关系,即每个Factory与一个Product相对应。 在设计模式的演示代码中,比如在Creator.h文件中,我们看到如下的定义: ```cpp #ifndef FACTORY_H #define FACTORY_H class Product { public: Product() {} virtual ~Product() {} }; class ConcreteProduct : public Product { public: ConcreteProduct(); virtual ~ConcreteProduct(); }; class Creator { public: Creator() {} virtual ~Creator() {} // 纯虚函数,子类需要实现 virtual Product* FactoryMethod() = 0; }; // 演示如何使用Factory模式创建具体产品 class ConcreteCreator : public Creator { public: Product* FactoryMethod() override { return new ConcreteProduct(); // 返回具体的ConcreteProduct实例 } }; #endif // FACTORY_H ``` 通过ConcreteCreator类的实现,我们可以看到FactoryMethod的具体应用,它返回的是ConcreteProduct的实例,这样就可以根据需要动态创建不同类型的Product。总体来说,Factory模式是一种创建型设计模式,它简化了对象创建的复杂性,并且使得代码更具模块性和可维护性,特别是在大型软件系统中,有助于降低系统的耦合度和提高代码的复用性。"