- 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
- 抗生素的分类作用机理总汇.ppt
- 抗生素在肺部感染中的应用pdf总汇.ppt
- 建筑工程施工检查质量通病及规范做法(附图较多)总汇.ppt
- 抗体蛋白芯片技术-实验总汇.ppt
- 建筑工程施工现场亮点观摩图片赏析(丰富清晰图片)总汇.ppt
- 抗原和抗体的制备总汇.ppt
- 考场作文写作点拨总汇.ppt
- 建筑工程施工质量通病防治措施(混凝土模板二次结构)总汇.ppt
- 考场作文这样写之——明确任务,引导写作:任务驱动型作文写作(45张)总汇.ppt
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第2课时 点的坐标特征.pptx
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第3课时 建立适当的平面直角坐标系.pptx
- 北师大版(2024)八年级数学上册课件 4.3 一次函数的图象 第1课时 正比例函数的图象及性质.pptx
- (人教A版数学选择性必修三)讲义第15讲7.1.1条件概率(学生版+解析).docx
- (人教A版数学选择性必修三)讲义第19讲8.1成对数据的统计相关性(8.1.1变量的相关关系+8.1.2样本相关系数)(学生版+解析).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第2课时 加减消元法.pptx
- (人教A版数学选择性必修一)2025年秋季学期讲义第01讲1.1.1空间向量及其线性运算(学生版+教师版).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第1课时 代入消元法.pptx
- 北师大版(2024)八年级数学上册课件 5.3 二元一次方程组的应用 第3课时 二元一次方程组的应用(3).pptx
- 北师大版(2024)八年级数学上册课件 5.4 二元一次方程与一次函数 第2课时 用二元一次方程组确定一次函数表达式.pptx
最近下载
- 内蒙古自治区矿产资源储量.doc VIP
- 高三英语语法填空题20套(带答案)含解析.docx VIP
- 冠脉分叉病变并严重钙化的pci处理_陈竹君.ppt VIP
- 939_98G359-3悬挂运输设备轨道.pdf VIP
- 危险化学品目录(2025版) .pdf VIP
- 2025年全国预防接种技能竞赛【决赛】考试题库(含答案).docx VIP
- GB 50345-2012 屋面工程技术规范.docx VIP
- 中国铀矿山绿色安全的现状与发展思路参考.pdf VIP
- 2025年云南省投资控股集团有限公司人员招聘笔试备考试题及完整答案详解一套.docx VIP
- 冠脉分叉病变并严重钙化的PCI处.pptx VIP
文档评论(0)