请问你能不能用python代码举一个使用了工厂模式的例子
时间: 2023-12-11 15:02:03 浏览: 59
当然可以,以下是一个使用工厂模式的 Python 代码示例:
```python
class Vehicle:
def __init__(self, name):
self.name = name
def move(self):
raise NotImplementedError
class Car(Vehicle):
def move(self):
print(f"{self.name} is driving on the road.")
class Plane(Vehicle):
def move(self):
print(f"{self.name} is flying in the sky.")
class VehicleFactory:
@staticmethod
def create_vehicle(name, vehicle_type):
if vehicle_type == "car":
return Car(name)
elif vehicle_type == "plane":
return Plane(name)
else:
raise ValueError(f"Invalid vehicle type: {vehicle_type}")
if __name__ == "__main__":
car = VehicleFactory.create_vehicle("Toyota", "car")
car.move() # Output: Toyota is driving on the road.
plane = VehicleFactory.create_vehicle("Boeing", "plane")
plane.move() # Output: Boeing is flying in the sky.
```
以上代码中,我们定义了一个基类 Vehicle 和两个子类 Car 和 Plane,这些类都实现了 move() 方法。然后我们创建了一个 VehicleFactory 工厂类,用于根据给定的车辆类型来创建相应的对象。在主程序中,我们使用 VehicleFactory 来创建一个 Car 对象和一个 Plane 对象,并分别调用它们的 move() 方法。这样,我们就实现了一个简单的工厂模式。
阅读全文