Python设计模式之工厂方法模式实例详解
程序员文章站
2023-08-17 10:09:02
本文实例讲述了python设计模式之工厂方法模式。分享给大家供大家参考,具体如下:
工厂方法模式(factory method pattern):定义一个用于创建对象的接...
本文实例讲述了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程序设计有所帮助。
下一篇: destoon设置自定义搜索的方法