时间:2021-05-22
本文实例讲述了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()#新增一个社区服务者的工厂eclass 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程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android编程设计模式之工厂方法模式。分享给大家供大家参考,具体如下:一、介绍工厂方法模式(FactoryPattern),是创建型设计模式之
本文实例讲述了php设计模式之工厂方法模式。分享给大家供大家参考,具体如下:PHP手册上提到的工厂模式,其实是简单工厂模式。这里来讨论简单工厂模式的扩展:工厂方
本文实例讲述了Java设计模式之工厂方法模式。分享给大家供大家参考,具体如下:工厂方法模式使用的频率非常高,在我们日常的开发中总能遇见到它的身影。其定义为:De
java工厂模式的实例详解工厂方法中的“工厂”和我们平常理解的一样:用于生产产品。而客户是要和产品打交道,所以工厂方法模式的意义在于把客户和产品分开,达到解耦和
本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用。具体如下:一、概念简单工厂模式【静态工厂方法模式】(St