Python设计模式之工厂方法模式实例详解
2019-01-19 00:02
881 查看
本文实例讲述了Python设计模式之工厂方法模式。分享给大家供大家参考,具体如下:
工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延时到其子类.
#!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = 'Andy' """ 大话设计模式 设计模式――工厂方法模式 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延时到其子类. 工厂方法模式克服了简单工厂模式违背开放-封闭原则的缺点,又保持了封装对象创建过程的优点 场景:雷锋工厂,不关心执行者,只关心执行结果 """ class LeiFeng(object): def Sweep(self): print "扫地" def Wash(self): print "洗衣" def BuyRice(self): print "买米" class IFactory(LeiFeng): def CreateLeiFeng(self): pass #大学生 class Undergraduate(LeiFeng): pass #新增社区服务者 class Volunteer(LeiFeng): pass # 学习雷锋的大学生工厂 class UndergraduateFactory(IFactory): def CreateLeiFeng(self): return Undergraduate() #新增一个社区服务者的工厂e class VolunteerFactory(IFactory): def CreateLeiFeng(self): return Volunteer() if __name__ == "__main__": student = UndergraduateFactory() volunteer = VolunteerFactory() student.BuyRice() student.Sweep() volunteer.Wash()
运行结果:
买米
扫地
洗衣
上面类的设计如下图:
创建一个抽象工厂类CreateLeiFeng和一个抽象对象类LeiFeng,当创建具体leifeng对象-Undergradiate去dosomething时,使用继承抽象工厂的UndergraduateFactory工厂类,该类返回一个Undergradiate实例,如果还要去做另一个dosomething时,再创建一个VolunteerFactory工厂方法创建创建一个Volunteer实例就可以了
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- 实例讲解Python设计模式编程之工厂方法模式的使用
- Android编程设计模式之工厂方法模式实例详解
- 实例讲解Python设计模式编程之工厂方法模式的使用
- Python设计模式之模板方法模式实例详解
- 23种设计模式之python实现--工厂方法
- python实现工厂方法设计模式
- 设计模式之三种工厂模式与实例详解
- 设计模式(二)工厂方法 / 实例工厂
- 设计模式(Python)-简单工厂,工厂方法和抽象工厂模式
- 跟着实例学习设计模式(5)-工厂方法 、抽象工厂的差别
- Java技术_每天掌握一种设计模式(003)_使用场景及简单实例(创建型:工厂方法)
- 设计模式详解之工厂方法模式
- .Net设计模式实例之工厂方法模式(转载)
- [Design Pattern]Python设计模式——工厂方法
- 23种设计模式C++实例之工厂方法模式
- Python设计模式之外观模式实例详解
- Python设计模式之建造者模式实例详解
- java设计模式之工厂模式实例详解
- 设计模式之python版(五)--工厂方法
- 设计模式之工厂方法模式实例