abstract_factory
来源:互联网 发布:js 获取http 的状态 编辑:程序博客网 时间:2024/05/21 10:04
#!/usr/bin/python# -*- coding: UTF-8 -*-# vim:set shiftwidth=2 tabstop=2 expandtab textwidth=79:import randomclass PetShop(object): def __init__(self, animal_factory=None): self.pet_factory = animal_factory def show_pet(self): pet = self.pet_factory.get_pet() print 'we hava a lovely {}'.format(pet) print 'It says {}'.format(pet.speak()) print 'We also hava {}'.format(self.pet_factory.get_food())class Dog(object): def speak(self): return 'woof' def __str__(self): return 'Dog'class Cat(object): def speak(self): return 'meow' def __str__(self): return 'Cat'class DogFactory(object): def get_pet(self): return Dog() def get_food(self): return 'dog food'class CatFactory(object): def get_pet(self): return Cat() def get_food(self): return 'cat food'def get_factory(): return random.choice([DogFactory, CatFactory])()for i in range(3): shop = PetShop(get_factory()) shop.show_pet() print '=' * 20
参考:
1、https://github.com/faif/python-patterns/blob/master/abstract_factory.py
2、http://blog.csdn.net/zhengzhb/article/details/7359385
0 0
- abstract_factory
- abstract_factory抽象工厂
- 抽象工厂(abstract_factory)c++版
- 创建型模式-抽象工厂模式(abstract_factory)
- 设计模式之对象创建型 — abstract_factory 抽象工厂模式
- C#高级篇(二)---LINQ、反射、线程
- 文章标题
- 使用android中的AIDL让Service与Activity通信(service回调activity)
- 【hdu4427】【zoj3662】math magic 背包+厉害的优化
- 新手学习,web编程入门(二)——语言学习入门之道
- abstract_factory
- 排序学习_冒泡排序
- 判断一个数是否为Happy数
- Linux鸟哥私房菜学习笔记(二)
- SRA解密报错:Data must start with zero
- 网络基础题
- C语言基础—函数的理解及应用
- 韩顺平java 第32讲 swing编程实战
- 深入浅出PageRank算法