什么是工厂模式举例说明
时间: 2024-05-11 19:12:16 浏览: 98
工厂模式是一种设计模式,它提供了一种创建对象的最佳方式,同时隐藏了创建对象的实现细节。在工厂模式中,我们不会向客户端暴露创建对象的逻辑,而是提供一个接口来创建对象。一个实现了工厂模式的类通常被称为工厂类。
举个例子,假设你现在在设计一个汽车制造系统,你需要根据客户的需求生产不同类型的汽车(比如轿车、SUV、卡车等等)。在这种情况下,你可以使用工厂模式来创建不同类型的汽车对象。你可以创建一个工厂类,该类具有一个方法,该方法接受一个字符串参数,并根据该字符串参数创建不同类型的汽车对象。这样,你就可以把创建对象的实现细节隐藏起来,只向客户端提供一个简单的接口来创建对象。
下面是一个简单的工厂模式的例子,我们创建了一个名为`CarFactory`的类,该类具有一个方法`create_car`,该方法接受一个字符串参数`car_type`,并根据该参数创建不同类型的汽车对象:
```python
class Car:
def __init__(self, model, color):
self.model = model
self.color = color
class CarFactory:
@staticmethod
def create_car(car_type):
if car_type == "SUV":
return Car("SUV", "red")
elif car_type == "sedan":
return Car("sedan", "blue")
elif car_type == "truck":
return Car("truck", "green")
else:
raise ValueError(f"Unknown car type {car_type}")
# Example usage:
suv = CarFactory.create_car("SUV")
print(suv.model) # 输出:SUV
print(suv.color) # 输出:red
```
在上述代码中,我们创建了一个名为`Car`的汽车类,该类具有两个属性`model`和`color`。接着我们创建了一个名为`CarFactory`的工厂类,该类具有一个静态方法`create_car`,该方法接受一个字符串参数`car_type`,并根据该参数创建不同类型的汽车对象。在这个例子中,我们创建了三种类型的汽车:SUV、轿车和卡车。当客户端调用`CarFactory.create_car`方法时,工厂类会根据传入的参数创建不同类型的汽车对象。
阅读全文