首页 > 编程 > Python > 正文

Python设计模式之工厂方法模式实例详解

2019-11-25 13:27:19
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表