https://blog.csdn.net/Hardworking666/article/details/111996951
装饰器:
概括地讲,装饰器的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象添加额外的功能。
装饰器经常用于比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。
有了装饰器,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。
使用装饰器的目的:
软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。
在软件设计完成后,不想改部分源码又想添加新功能,就用到了装饰器。
装饰器的实现:
函数装饰器分为:无参装饰器和有参装饰两种,二者的实现原理都是“函数嵌套+闭包+函数对象”的组合使用。