- 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
- 2023-2024年理光(深圳)工业发展有限公司招聘1人历年高频考题难、易错点模拟试题附带答案内部题.docx
- 2023-2024年珠海粤裕丰钢铁有限公司校园招聘公开引进高层次人才笔试答案内部题库【精练】.docx
- 2023-2024年瑞星集团股份有限公司招聘193人高频考题难、易错点模拟试题附带答案完整题库附参考.docx
- 2023-2024年珠海粤裕丰钢铁有限公司招聘71人公开引进高层次人才笔试参考题库答案通关秘籍题库及.docx
- 2023-2024年珠海粤裕丰钢铁有限公司招聘3人历年(高频重点提升专题训练)附带答案题库大全及答案.docx
- 2023-2024年理光(深圳)工业发展有限公司定向招聘历年高频难、易错点模拟试题附带答案大全附答案.docx
- 2023-2024年珠海粤裕丰钢铁有限公司招聘80人历年高频考题难、易错点模拟试题附带答案完整题库【.docx
- 2023-2024年珠海粤裕丰钢铁有限公司应届高校毕业生招聘高频考题难模拟试题附带答案题库大全含答案.docx
- 2024年武汉市丹发铝材公司招聘考试真题.docx
- 2024年民航西北空管局招聘考试真题.docx
文档评论(0)