- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可爱的Python剖析
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
- 句式的选择和调整(粤教必修3)剖析.ppt
- 只有文案的文案培训剖析.ppt
- 人教版初中化学知识点总结(绝对全,中考必备)分解.doc
- 人教版初中语文课内成语解释汇编分解.doc
- 人美版小学五年级上册第18课防灾减灾分解.ppt
- 人美二年级上册美术教案分解.doc
- 叫料系统技术解决方案V4.1剖析.ppt
- 可变信息标志通讯协议(显科)剖析.doc
- 古老而现代的首都北京剖析.ppt
- 长久物流-市场前景及投资研究报告-整车物流运输领先,反内卷,盈利改善.pdf
- 安徽智能家电行业市场前景及投资研究报告:百尺竿头,聚焦高质量,生态聚合,谱写篇章.pdf
- 中信银行-市场前景及投资研究报告-零售战略推进,对公根基深厚.pdf
- 九洲药业-市场前景及投资研究报告-技术创新核心,创新药CDMO一站式服务平台.pdf
- 华新水泥-市场前景及投资研究报告-水泥国际化先行者,国内反内卷.pdf
- 奢侈品行业2025年市场前景及投资研究报告:培训课件.pdf
- 社会服务行业2025年投资策略分析报告:新消费景气度,关注细分赛道投资.pdf
- 华洋赛车-市场前景及投资研究报告-国内摩托车运动代表品牌,募投项目新增产能.pdf
- 2026届江苏省东台市第一中学高三语文第一学期期末达标测试试题含解析.doc
- 2026届宁夏银川市宁夏大学附中语文高三第一学期期末教学质量检测模拟试题含解析.doc
最近下载
- 城道路工程设计规范.pdf VIP
- 《中华民族发展史》课件.ppt VIP
- 2024年浙江中考语文真题作文解读与参考范文多篇(我失掉了懈怠、浮躁、怯懦、无知).docx VIP
- 2023-2024初中物理竞赛试题精选精编第12讲浮力(含解析).doc VIP
- QCT29106-2014汽车电线束的检测[整理版].pdf VIP
- 抖音内衣泳衣类目准入考试答案题库抖音达人【内衣裤袜泳衣类】商品作者准入申请考试.docx
- DB36_T 1701-2022 翘嘴鲌人工繁殖技术规程.docx VIP
- 2023-2024初中物理竞赛试题精选精编第05讲凸透镜成像(含解析).doc VIP
- DB36T-翘嘴鲌苗种培育技术规程.pdf VIP
- 质量理念和质量管理知识培训.ppt VIP
文档评论(0)