📅  最后修改于: 2023-12-03 14:53:58.478000             🧑  作者: Mango
工厂方法是一种常用的设计模式,它通过提供一个抽象工厂来完成对象的创建,使得创建对象的过程与客户端的调用过程分离,从而降低了代码的耦合性。
在以下情况下可以考虑使用工厂方法设计模式:
工厂方法的实现步骤如下:
from abc import ABC, abstractmethod
# 创建抽象工厂类
class AnimalFactory(ABC):
@abstractmethod
def create_animal(self):
pass
# 创建具体的工厂类
class CatFactory(AnimalFactory):
def create_animal(self):
return Cat()
class DogFactory(AnimalFactory):
def create_animal(self):
return Dog()
# 创建抽象产品类
class Animal(ABC):
@abstractmethod
def talk(self):
pass
# 创建具体的产品类
class Cat(Animal):
def talk(self):
return "Meow!"
class Dog(Animal):
def talk(self):
return "Woof!"
# 客户端代码
cat_factory = CatFactory()
dog_factory = DogFactory()
cat = cat_factory.create_animal()
dog = dog_factory.create_animal()
print(cat.talk()) # Meow!
print(dog.talk()) # Woof!
以上代码创建了一个简单的动物工厂,客户端代码可以通过工厂类创建具体的动物对象并调用其方法。此时,客户端代码无需关心具体的对象是如何创建的,从而实现了客户端代码逻辑和对象创建逻辑的分离。