python工厂模式示例

以下是一个简单的Python工厂模式示例:

class Animal:
    def __init__(self, name):
        self.name = name
    
    def sound(self):
        pass

class Dog(Animal):
    def sound(self):
        return "汪汪汪!"

class Cat(Animal):
    def sound(self):
        return "喵喵喵!"

class AnimalFactory:
    def create_animal(self, animal):
        if animal == "dog":
            return Dog("小狗")
        elif animal == "cat":
            return Cat("小猫")

animal_factory = AnimalFactory()
dog = animal_factory.create_animal("dog")
cat = animal_factory.create_animal("cat")

print(dog.sound())  # 输出:汪汪汪!
print(cat.sound())  # 输出:喵喵喵!

在这个例子中,我们定义了一个Animal基类和它的两个子类Dog和Cat,它们都有一个sound()方法返回各自的叫声。AnimalFactory类是我们的工厂类,它的create_animal()方法根据传入的参数来创建相应的Animal对象。通过传递不同的参数,我们可以创建不同的动物对象,并调用它们的方法。