前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python编程实战 - 笔记1

Python编程实战 - 笔记1

作者头像
happy123.me
发布2018-06-04 10:43:44
5060
发布2018-06-04 10:43:44
举报
文章被收录于专栏:乐享123乐享123

这本书讲的挺实在的,设计模式的部分又复习了一遍。另外又学了几个Python3的新decorator。

创建型设计模式

抽象工厂 (Abstract Factory)
  • 名字就用AbstractFactory好了,不要起什么BaseFactory之类的
  • 相关类都放到对应的Factory Class里面,不要暴露给外面了
建造者模式 (Build)
  • 和工厂的区别就是保存了创建对象时各个部分的细节
工厂模式
  • 根据情况实例化对象
  • 还是注意和抽象工厂的区别,抽象工厂是将创建对象的行为抽象出来,而工厂模式则是根据要创建的对象类型实例化
原型模式 (Prototype)
  • 这个模式其实在javascript的根本,不过Python的实现方法还真是五花八门,我说直接用copy就好了嘛
单例模式 (Singleton)
  • 我最中意的一种实现:

1 2 3 4 5 6 7 8 9 10 11

class Borg: _shared_state = {} def __init__(self): self.__dict__ = self._shared_state class Singleton(Borg): def __init__(self, arg): Borg.__init__(self) self.val = arg def __str__(self): return self.val

结构型设计

  • 作用就是改装对象,或者把小对象合并为大对象
Adapter
  • 其实就是转接方法
Bridge
  • 把方法抽象出来
Composite
  • Python里面有一种省一点内存的写法,可以直接用CompositeItem和Item两个类来实现,不过我觉得不直观
decorator
  • 几个新的decorator:
    • @functools_wraps : 装饰器工厂
    • @statically_typed : 类型检查
  • 另外@ensure类修饰符可以用来简化设置property的代码
Facade
  • 这个模式其实是天天在做的,就是把接口聚合的好看一点
  • 其实思想可以推广到很多方面,比如Docker,就是LXC的一个Facader,而且做的比较好看,于是大家就都来用了
Flyweight
  • 管理许多小对象的时候用引用
  • Python用__slot__ Attribute来做最方便
  • 里面关于用shelve对象存储class attribute的思路挺实用的
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建型设计模式
    • 抽象工厂 (Abstract Factory)
      • 建造者模式 (Build)
        • 工厂模式
          • 原型模式 (Prototype)
            • 单例模式 (Singleton)
            • 结构型设计
              • Adapter
                • Bridge
                  • Composite
                    • decorator
                      • Facade
                        • Flyweight
                        相关产品与服务
                        对象存储
                        对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档