用一个抽象类来整合一系列相近的对象,对外只有一个入口。
提供一个接口创建相关对象而无需指定他们的实际类。
有点对外统一 一个入口,然后更具入口参数实现路由的感觉,
class PetShop(object):
def __init__(self,animal_factory=None):
self.pet_factory=animal_factory
def show_pet(self):
pet=self.pet_factory()
print ('we have %s'%pet)
print ('it say:%s'%pet.speak())
class Dog(object):
def speak(self):
return 'woof'
def __str__(self):
return 'Dog'
class Cat(object):
def speak(self):
return 'miaomiao'
def __str__(self):
return 'Cat'
if __name__=='__main__':
cat_shop = PetShop(Cat)
cat_shop.show_pet()
dog_shop=PetShop(Dog)
dog_shop.show_pet()