工厂方法模式是一种对象创建型模式,它提供了一种创建对象的标准方式,而不需要明确指定对象的类。这种模式在软件开发中广泛应用于减少对象之间的耦合,使得一个类的实例化过程与其使用过程分离。
工厂方法模式的基本结构
- 抽象产品(Product):定义了产品的接口,声明了产品的各种操作。
- 具体产品(ConcreteProduct):实现了抽象产品接口,定义了具体产品的行为。
- 抽象工厂(Factory):声明了用于创建产品的接口。
- 具体工厂(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