装饰者模式以对客户透明的方式动态地给一个对象附加上更多的责任,装饰者模式相比生成子类可以更灵活地增加功能。 优点: 缺点:装饰者模式会导致设计中出现许多小对象,如果过度使用,会让程序变的更复杂。并且更多的对象会是的差错变得困难,特别是这些对象看上去都很像。 使用场景 下面让我们看看装饰者模式具体在哪 ...
分类:
其他好文 时间:
2016-12-03 20:43:58
阅读次数:
148
考察上一节的 @log 装饰器: 发现对于被装饰的函数,log打印的语句是不能变的(除了函数名)。 如果有的函数非常重要,希望打印出'[INFO] call xxx()...',有的函数不太重要,希望打印出'[DEBUG] call xxx()...',这时,log函数本身就需要传入'INFO'或' ...
分类:
编程语言 时间:
2016-12-03 18:22:07
阅读次数:
194
一、装饰器: 1、装饰器定义: 本质是函数,装饰其它函数,就是为其他函数添加附加功能。 @+函数 2、原则: 2.1.不能修改被装饰的函数的源代码 2.2不能修改被装饰的函数的调用方式 import time def timmer(func): def warpper(*args,**kwargs) ...
分类:
其他好文 时间:
2016-12-03 18:05:49
阅读次数:
352
抽象接口 raise实现自动报警功能 静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方法是不可以访问实例变量或类变量的,一个不能访问实例变 ...
分类:
编程语言 时间:
2016-12-03 10:01:55
阅读次数:
397
装饰模式:以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案;代理模式:给一个对象提供一个代理对象,并有代理对象来控制对原有对象的引用; 装饰模式应该为所装饰的对象增强功能;代理模式对代理的对象施加控制,并不提供对象本身的增强功能 二者的实现机制确实是一样的,可以看到他们的实例代码重复是很 ...
分类:
编程语言 时间:
2016-12-03 07:40:33
阅读次数:
306
CSS 文本属性可定义文本的外观。 通过文本属性,您可以改变文本的颜色、字符间距,对齐文本,装饰文本,对文本进行缩进,等等。 缩进文本 把 Web 页面上的段落的第一行缩进,这是一种最常用的文本格式化效果。 CSS 提供了 text-indent 属性,该属性可以方便地实现文本缩进。 通过使用 te ...
分类:
Web程序 时间:
2016-12-02 18:54:20
阅读次数:
313
在JAVA I/O类库里有很多不同的功能组合情况,这些不同的功能组合都是使用装饰器模式实现的,下面以FilterInputStream为例介绍装饰器模式的使用 FilterInputStream和FilterOutputStream 首先,这两个都分别是InputStream和OutputStrea ...
分类:
编程语言 时间:
2016-12-02 09:51:43
阅读次数:
158
title:Python学习记录day5
tags:python
author:ChingeYang
date:2016-11-26
1.多层装饰器
多层装饰器的原理是装饰器装饰函数后其实也是一个函数这样又可以被装饰器装饰。编译是从下至上进行的执行时是从上至下进行。
#!/usr/bin/envpython
#_*_coding:utf-8_*_
‘‘‘
*Createdon..
分类:
编程语言 时间:
2016-12-02 03:42:35
阅读次数:
209
一、单例设计模式 懒汉(线程安全问题)同步锁,每次判断锁,效率低,外层再加一个判断是否为空,效率高 1、私有化构造方法 2、声明引用类型变量,不要创建对象 3、声明静态方法获取本类对象,判断是否已经创建了本类的对象,如果已经创建了直接返回,没有则创建引用类型变量返回 二、装饰者设计模式 增强一个类的 ...
分类:
其他好文 时间:
2016-12-02 02:22:29
阅读次数:
113
单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 里氏替换原则 定义:所有引用基类的地方必须能透明地使用其子类的对象。 依赖倒置原则 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 接口隔离原则 定义:客户端不应 ...
分类:
其他好文 时间:
2016-12-01 22:05:45
阅读次数:
219