- 1、本文档共86页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Python中的socket编程 Python与设计模式 单体模式 Simple Factory 模式 Factory Method模式 Abstract Factory模式 Python设计模式 Python与设计模式 尽管设计模式的目标是努力做到与语言的无关性,但事实上许多模式在应用时还是需要依赖于具体实现语言的某些特性,尤其是该语言的对象模型。 在Python中应用设计模式的一个有利因素是它的动态类型绑定,也就是说一个对象很少只是一个类的实例,而是可以在运行时动态改变。在面向对象系统中,接口是一个基本的组成部分,对象只有通过它们的接口才能与外界进行交互。对象的接口与其功能是完全分离的,支持相同请求的不同对象针对同一请求所触发的操作可能完全不同,这就是动态绑定的概念。动态绑定虽然看起来在一定程度上使得代码不同那么容易理解和维护,但它的确可以使整个软件系统的结构显得更加清晰和合理。 后续我们简单介绍下创建型设计模式,重在描述用Python来实现,至于这个设计模式的好处和为什么非要用这个模式,大家看过设计模式相关资料的都知道,这里就不说明了。 单体 模式 单体是保证在程序运行中,只存在一个实例。 Python中单体可以这样来实现: 文件:singleton.py class Singleton(object): _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs) return cls._instance 文件:mysingleton.py class MySingletom(Singleton): __att = def __init__(self, att): if not self.__att: self.__att = att def Getatt (self): return self.__att 运行: obj1 = MySingletom(obj1) obj2 = MySingletom(obj2) id(obj1), id(obj2) obj1.Getatt(), obj2.Getatt() (obj1, obj1) Simple Factory 模式 简单工厂模式属于类的创建型模式,适合用来对大量具有共同接口的类进行实例化,它可以推迟到运行的时候才动态决定要创建哪个类的实例,而不是在编译时就必须知道要实例化哪个类。简单工厂模式的一般性结构如图所示: Simple Factory 模式 文件:creator.py class ShapeFactory : # 创建具体产品类的方法 def factory(self, which): if which == Circle: return Circle() elif which == Rectangle: return Rectangle() elif which == Diamond: return Diamond() else: return None 文件:shape.py class Shape : # 所有具体产品类的公共接口 def draw(self): pass 文件:shape.py class Circle : # 绘制圆形 def draw(self): pass 文件:shape.py class Rectangle : # 绘制矩形 def draw(self): pass 文件:shape.py class Diamond : # 绘制菱形 def draw(self): pass 文件:main.py fac = ShapeFactory () Shape = fac.factory(Diamond) if shape != None: shape.draw() 将类是如何创建的这一实现细节向外界隐藏起来了,
您可能关注的文档
- 甲烷(共三课时)分解.ppt
- 甲型H1N1流感的诊断与治疗(分解.ppt
- 加热炉标准操作课程.doc
- 贾岛推敲分解.ppt
- 胸部医学影像征象集萃[图片]课程.doc
- 贾平凹《秦腔》分解.ppt
- 加工中心操作工高级工新复习题课程.doc
- 星海求知:天文学的奥秘1课程.doc
- 科学《地震》分解.ppt
- 信号工上岗证培训课程.doc
- 25上半年2期套题班-行政职业能力测验(八).docx
- 公考讲义-2025年1月时政汇总.pdf
- 2025年省考逻辑填空1000 高频实词积累+刷题早读课 讲义.pdf
- 25上半年2期套题班-行政职业能力测验(九).docx
- 2025四川事业编FB综合岗考试-综合能力测试讲义-主观题基础,案例分析题,公文写作及文章写作题.pdf
- 25上半年2期套题班-行政职业能力测验(五).docx
- 2025申论多省联考刷题课真题资料-2025国考执法课程.doc
- 2025申论多省联考刷题课真题资料-2024江西执法课程.doc
- 25上半年2期套题班-行政职业能力测验(十).docx
- 2025申论多省联考刷题课真题资料-2024福建县乡课程.doc
最近下载
- 互联网+背景下陕西皮影艺术的传承与发展.docx
- 04 项目四 海洋平台建造方案选择与分段划分特点《海洋平台建造工艺》(船舶工程技术专业).ppt VIP
- 2024届广西南宁市高三一模考试英语试题(解析版).docx VIP
- PEP人教版六年级英语下册第四单元测试题含答案.docx VIP
- DB61T 443.1-2008 苹果气象灾害第1部分:花期冻害预警等级.pdf VIP
- DeepSeek从入门到精通.pptx
- 03 项目三 海洋平台构件加工《海洋平台建造工艺》(船舶工程技术专业).ppt
- 2024-2025学年初中地理八年级下册晋教版(2024)教学设计合集.docx
- 加速康复外科围手术期管理课件.pptx VIP
- 华文版六年级下册书法教案.doc
文档评论(0)