一、什么是装饰器 装饰:装饰既修饰,意指为其他函数添加新功能 器:器既函数 装饰器定义:本质就是函数,功能是为其他函数添加新功能 二、装饰器需要遵循的原则 1、不能修改装饰器的源代码(开放封闭原则) 2、为装饰器函数添加新功能后,不能修改函数的调用方式 三、实现装饰器的知识储备 装饰器 = 高阶函数 ...
分类:
编程语言 时间:
2018-04-09 16:22:28
阅读次数:
226
装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象。 装饰器的应用场景:比如插入日志,性能测试,事务处理,缓存等等场景。 ...
分类:
编程语言 时间:
2018-04-04 23:35:34
阅读次数:
286
开放-封闭原则: 封闭:已实现的功能代码块不应该被修改. 开放:对现有功能的扩展开放. 装饰器: 定义:在符合'开放-封闭'的原则下,给程序扩展其他的功能! ...
分类:
其他好文 时间:
2018-04-01 18:57:04
阅读次数:
110
什么是重构? 重构是在不改变软件可观察行为的前提下改善其内部结构。 Martin Fowler 通俗说法:看起来没做啥调整,让系统继续更好的满足客户需求。同时,希望重构完成后,这个系统能够多蹦跶几年。 重构的分类: 代码重构 如果想了解代码方面的重构主要有哪些方法,可以参考《重构:改善既有代码的设计 ...
分类:
其他好文 时间:
2018-04-01 13:16:00
阅读次数:
139
本章目录: 装饰器: 一、为什么要用装饰器 二、什么是装饰器 三、无参装饰器 四、装饰器语法糖 五、认证装饰器实现 六、叠加多个装饰器 七、带参装饰器 一、开放封闭原则 引子--为什么要用装饰器 软件一旦上线后,对修改源代码是封闭的,对功能扩展是开放的。 也就是说我们必须找到一种解决方案: 能够在不 ...
分类:
编程语言 时间:
2018-03-29 21:18:30
阅读次数:
253
一:开放封闭原则 对修改源代码是封闭的,对功能的扩展是开放的。软件一旦上线后,就应该遵循开放封闭原则。即对修改源代码是封闭的,对功能源代码以及调用方式的前提下,为其加上新功能。 总结: 1.不修改源代码 2.不修改调用方式 目的: 在遵循1和2 原则的基础上扩展新功能。 二:装饰器 什么是装饰器? ...
分类:
其他好文 时间:
2018-03-29 17:29:21
阅读次数:
176
开放封闭原则 软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的,也就是说我们必须要找到一种解决方案: 能够在不修改一个功能源代码以及调用方式的前提下,为其加上新功能。 总结 原则如下: 1、不修改源代码 2、不修改调用方式 目的: 在遵循1和2原则的基础上扩展新功 ...
分类:
其他好文 时间:
2018-03-29 17:28:17
阅读次数:
180
为什么要有装饰器? 什么是装饰器? 装饰器是可调用的函数,被装饰者也是可以调用的函数 原则:不修改被装饰者的代码,不改变被装饰者的调用方式 目的:给被装饰者添加功能 实现过程 基本语法 无参装饰器 有参装饰器 ...
分类:
编程语言 时间:
2018-03-29 16:04:18
阅读次数:
184
在简单工厂模式中,我们发现存在很多问题: 由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要受到影响。 要新增产品类的时候,就要修改工厂类的代码,违反了开放封闭原则(对扩展的开放,对修改的关闭)。 简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。 为了解决上... ...
分类:
其他好文 时间:
2018-03-25 21:46:24
阅读次数:
248
1. 生成器 通过列表生成式,可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个 包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数 的元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在 ...
分类:
编程语言 时间:
2018-03-11 02:46:43
阅读次数:
195