定义了一个抽象类Animal,并且让具体的动物类(Dog、Cat、Duck)继承自它,并实现了speak方法。然后创建了AnimalFactory工厂类,根据传入的参数来决定创建哪种动物的实例。
from abc import abstractmethod, ABCclass Animal(ABC):#抽象一个基类,继承ABC,目的是不能实力化该类@abstractmethod #用 @abstractmethod 方法是继承该类后,必须实现该方法。def speak(self):passclass Dog(Animal):def speak(self):print("Woof!")class Cat(Animal):def speak(self):print("Meow!")class Duck(Animal):def speak(self):print("Quack!")class AnimalFactory:def create_animal(self, animal_type: str):animal_type = animal_type.lower() # 统一转换为小写if animal_type == "dog":return Dog()elif animal_type == "cat":return Cat()elif animal_type == "duck":return Duck()else:return Noneif __name__ == '__main__':factory = AnimalFactory()dog = factory.create_animal("dog")cat = factory.create_animal("cat")duck = factory.create_animal("duck")dog.speak() # 输出: Woof!cat.speak() # 输出: Meow!duck.speak() # 输出: Quack!