Python设计模式之工厂方法模式的示例分析

这篇文章主要介绍了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()

运行结果:

买米
扫地
洗衣

上面类的设计如下图:

Python设计模式之工厂方法模式的示例分析

创建一个抽象工厂类CreateLeiFeng和一个抽象对象类LeiFeng,当创建具体leifeng对象-Undergradiate去dosomething时,使用继承抽象工厂的UndergraduateFactory工厂类,该类返回一个Undergradiate实例,如果还要去做另一个dosomething时,再创建一个VolunteerFactory工厂方法创建创建一个Volunteer实例就可以了。

感谢你能够认真阅读完这篇文章,希望小编分享的“Python设计模式之工厂方法模式的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。