工厂模式是一种创建型设计模式,它提供了一种方法来实例化对象,而不是直接使用 new 关键字。在工厂模式中,我们定义一个工厂类,该类负责创建特定类型的对象,并将对象的创建逻辑封装在其中。
下面是一个简单的例子来说明工厂模式的使用:
# 定义一个具体产品类
class Car:
def __init__(self, brand, color):
self.brand = brand
self.color = color
# 定义一个工厂类
class CarFactory:
def create_car(self, brand, color):
# 执行一些复杂的逻辑,例如根据不同的参数创建不同的对象
# 这里只是简单地创建一个 Car 对象并返回
return Car(brand, color)
# 使用工厂模式创建对象
factory = CarFactory()
car1 = factory.create_car("Audi", "black")
car2 = factory.create_car("BMW", "white")
print(car1.brand) # 输出: Audi
print(car1.color) # 输出: black
print(car2.brand) # 输出: BMW
print(car2.color) # 输出: white
在上述示例代码中,我们首先定义了一个具体产品类 Car
,该类具有品牌和颜色属性。然后定义了一个工厂类 CarFactory
,该类具有一个 create_car
方法,用于创建 Car
对象。create_car
方法可以根据传入的参数执行一些复杂的逻辑,比如根据不同的参数创建不同的对象,但在本例中,我们只是简单地创建一个 Car
对象并返回。最后,我们使用工厂模式创建了两个不同品牌和颜色的汽车对象,并输出它们的品牌和颜色信息。
通过使用工厂模式,我们将对象的创建过程从客户端代码中分离出来,并使客户端不需要关心具体的实例化过程。这提高了代码的可维护性和灵活性,同时也降低了代码的耦合度。