Python 面试题
目录

Python 中如何实现工厂模式?

· 约 2 分钟读完 · 第 151 / 171 章

推荐答案

本题详细解读

工厂模式的概念

工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而无需指定具体的类。工厂模式的核心思想是将对象的创建过程封装在一个工厂类中,客户端只需要通过工厂类来获取对象,而不需要直接实例化具体的类。

代码结构

  1. 具体产品类:Dog 和 Cat 是两个具体的产品类,它们实现了 speak 方法。
  2. 工厂类:AnimalFactory 是一个工厂类,它包含一个静态方法 create_animal,根据传入的参数决定创建哪种具体的产品对象。

使用场景

工厂模式适用于以下场景:

  • 当对象的创建逻辑比较复杂时,可以将创建逻辑封装在工厂类中,简化客户端的代码。
  • 当需要根据不同的条件创建不同的对象时,工厂模式可以提供一种灵活的方式来管理对象的创建。

优点

  • 解耦:客户端代码与具体产品类解耦,客户端只需要知道工厂类和产品接口,而不需要知道具体的产品类。
  • 扩展性:如果需要添加新的产品类,只需要修改工厂类,而不需要修改客户端代码。

缺点

  • 复杂性增加:如果产品类较多,工厂类可能会变得复杂,难以维护。
  • 违反开闭原则:每次添加新的产品类时,都需要修改工厂类,这可能会违反开闭原则(对扩展开放,对修改关闭)。