网站大量收购闲置独家精品文档,联系QQ:2885784924

可爱的Python分解.ppt

  1. 1、本文档共86页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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() 将类是如何创建的这一实现细节向外界隐藏起来了,

您可能关注的文档

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档