结构类设计模式之装饰器模式
装饰器模式
对装饰器的理解 ,并写出一个计时器记录方法执行性能的装饰器?
装饰器本质上是一个 Python 函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外
功能,装饰器的返回值也是一个函数对象。
import time
def timeit(func):
def wrapper():
start = time.clock()
func() end =time.clock()
print 'used:', end - start
return wrapper
@timeit
def foo():
print 'in foo()'foo()
装饰器模式的优点和应用场景
优点:
1、装饰器模式是继承方式的一个替代方案,可以轻量级的扩展被装饰对象的功能;
2、Python的装饰器模式是实现AOP的一种方式,便于相同操作位于不同调用位置的统一管理。
应用场景:
1、需要扩展、增强或者减弱一个类的功能,如本例。
装饰器模式的缺点
1、多层装饰器的调试和维护有比较大的困难。