写一个工厂模式的类继承的代码
时间: 2024-05-05 22:15:30 浏览: 76
c#代码介绍23种设计模式-03工厂模式(附代码)
5星 · 资源好评率100%
下面是一个工厂模式的类继承的示例代码:
```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:
return None
# 使用工厂类创建实例
factory = AnimalFactory()
dog = factory.create_animal("dog", "Buddy")
cat = factory.create_animal("cat", "Fluffy")
print(dog.speak()) # 输出 "Woof!"
print(cat.speak()) # 输出 "Meow!"
```
在上面的示例中,我们定义了一个`Animal`基类和两个子类`Dog`和`Cat`。每个子类都覆盖了基类的`speak`方法以实现自己的声音。
然后,我们定义了一个`AnimalFactory`工厂类,该类具有一个`create_animal`方法,该方法接受动物类型和名称,并根据动物类型创建适当的实例。如果类型无效,则返回`None`。
最后,我们使用工厂类创建一个`Dog`实例和一个`Cat`实例,并调用它们的`speak`方法以听到它们的声音。
阅读全文