工厂模式(分简单工厂模式、工厂方法模式、抽象工厂模式)

工厂模式(分简单工厂模式、工厂方法模式、抽象工厂模式)
最新回答
琳开韵味沟

2026-06-29 03:18:53

工厂模式:三种模式详解


工厂模式是一种创建对象的设计策略,它简化了对象的创建过程,分为简单工厂、工厂方法和抽象工厂三种模式。



1. 创建型模式

  • 简单工厂模式: 适用于对象构造过程相对简单且相似的情况,如图形绘制工具创建圆形、矩形等。它通过工厂类的静态方法,隐藏了对象的具体创建细节。

  • 工厂方法模式: 当对象构造过程各异,需要在运行时根据条件动态创建时,采用工厂方法模式,如不同类型的日志记录器。它通过接口推迟了具体对象的创建。

  • 抽象工厂模式: 适用于创建一组相关对象,如跨平台 GUI 工具箱,它提供创建一系列组件的接口,允许创建不同平台的组件集合。




2. 适用场景

  • 简单工厂模式:用于构造相似对象,如图形工具。

  • 工厂方法模式:当需要根据条件灵活创建对象,如日志记录器。

  • 抽象工厂模式:创建一组相互依赖的对象,如跨平台 GUI 组件。




3. 优缺点

优点:简化了客户端对创建过程的了解,增强了代码的灵活性和可扩展性。
缺点:增加了额外的抽象层次,可能导致代码复杂度提高。




示例代码

  • 简单工厂模式 (C++): 通过ShapeFactory创建Shape子类对象。

  • 工厂方法模式 (C++): 通过ShapeFactory接口和具体工厂类(如CircleFactory, RectangleFactory)创建对象。

  • 抽象工厂模式 (C++): 通过GUIFactory创建不同平台的Button和Checkbox对象,如WindowsGUIFactory和MacOSGUIFactory。