工厂方法模式是一种对象创建型模式,它提供了一种创建对象的标准方式,而不需要明确指定对象的类。这种模式在软件开发中广泛应用于减少对象之间的耦合,使得一个类的实例化过程与其使用过程分离。

工厂方法模式的基本结构

  1. 抽象产品(Product):定义了产品的接口,声明了产品的各种操作。
  2. 具体产品(ConcreteProduct):实现了抽象产品接口,定义了具体产品的行为。
  3. 抽象工厂(Factory):声明了用于创建产品的接口。
  4. 具体工厂(ConcreteFactory):实现了抽象工厂接口,创建具体产品。

工厂方法模式的优点

  • 降低模块间的耦合度:使用工厂方法模式,可以减少模块间的依赖。
  • 提高模块的复用性:通过工厂方法,可以在不修改原有代码的情况下,增加新的产品类。
  • 便于扩展:当需要添加新的产品时,只需要添加新的具体产品类和具体工厂类。

示例

假设我们有一个图形绘制应用,需要绘制圆形和矩形。

**产品:**
- Circle
- Rectangle

**工厂:**
- ShapeFactory

**客户端:**

使用工厂方法创建圆形

class Circle:
    def draw(self):
        print("Drawing Circle")

class Rectangle:
    def draw(self):
        print("Drawing Rectangle")

class ShapeFactory:
    def create_shape(self, shape_type):
        if shape_type == "circle":
            return Circle()
        elif shape_type == "rectangle":
            return Rectangle()
        else:
            return None

# 客户端代码
factory = ShapeFactory()
shape = factory.create_shape("circle")
shape.draw()

相关链接

了解更多关于设计模式的信息,请访问设计模式教程

Factory Method Pattern Diagram