################################################################################ 1. ObjectInterface: common interface for genereated objects# 2. FactoryObject: returns object## Flow:# client ---> [Factory ---> Abstract] <--- [Object1, Object2, ...]# ^ |# | |# ---------------------------################################################################################## Example: Animal Farm Factory## Object Code# 1. ObjectInterfaceclass Animal(object):def voice(self):passclass Pig(Animal):def voice(self):print('Oink')class Cow(Animal):def voice(self):print('Moo')class Duck(Animal):def voice(self):print('Quack')## Factory Code# 2. FactoryObjectclass AnimalFarmFactory(object):@staticmethoddef getAnimal(name):if name == 'Duck':return Duck()elif name == 'Cow':return Cow()elif name == 'Pig':return Pig()else:assert 0, 'Could not find animal "%s"' %name## Client Codeif __name__ == '__main__':# Create animal "Pig"f = AnimalFarmFactory()animal = f.getAnimal('Pig')animal.voice()# Create animal "Cow"animal = f.getAnimal('Cow')animal.voice()# Create animal "Duck"animal = f.getAnimal('Duck')animal.voice()# What about animal "Goat"?animal = f.getAnimal('Goat')animal.voice()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。