请给出一个动物工厂模式python代码示例
时间: 2024-05-01 18:21:05 浏览: 12
动物工厂模式是一种创建对象的设计模式,它允许我们动态地创建不同类型的对象,而无需直接指定它们的类。以下是一个简单的动物工厂模式的 Python 代码示例:
```python
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"
class Cat(Animal):
def speak(self):
return "Meow!"
class AnimalFactory:
def create_animal(self, animal_type, name):
if animal_type == "dog":
return Dog(name)
elif animal_type == "cat":
return Cat(name)
else:
raise ValueError("Invalid animal type")
```
在上面的代码中,我们定义了一个 `Animal` 类和两个子类 `Dog` 和 `Cat`,它们分别实现了 `speak` 方法。我们还定义了一个 `AnimalFactory` 类,它有一个 `create_animal` 方法,它接受一个 `animal_type` 和一个 `name` 参数,并根据 `animal_type` 创建相应的动物对象。
以下是一个使用该工厂的示例代码:
```python
factory = AnimalFactory()
dog = factory.create_animal("dog", "Fido")
cat = factory.create_animal("cat", "Whiskers")
print(dog.speak()) # Output: "Woof!"
print(cat.speak()) # Output: "Meow!"
```
在上面的代码中,我们首先创建了一个 `AnimalFactory` 对象,然后使用它来创建一个名为 "Fido" 的狗对象和一个名为 "Whiskers" 的猫对象,并分别调用它们的 `speak` 方法。