【发布时间】:2017-01-31 04:12:37
【问题描述】:
我在 Python 中找到了这个抽象工厂模式的示例。我试图弄明白为什么需要一个 DogFactory,难道只是调用 Dog 类的代码更简单吗?有人可以解释一下这种模式在现实世界的应用程序中如何有用
class Dog:
def speak(self):
return "Woof!"
def __str__(self):
return "Dog"
class DogFactory:
def get_pet(self):
return Dog()
def get_food(self):
return "Dog Food!"
class PetStore:
def __init__(self, pet_factory=None):
self._pet_factory = pet_factory
def show_pet(self):
pet = self._pet_factory.get_pet()
pet_food = self._pet_factory.get_food()
print("Our pet is '{}'!".format(pet))
print("Our pet says hello by '{}'".format(pet.speak()))
print("Its food is '{}'!".format(pet_food))
factory = DogFactory()
shop = PetStore(factory)
shop.show_pet()
【问题讨论】:
标签: python python-2.7 design-patterns abstract-factory