16. 装饰器
小蛙有话说环节
与诸君共勉,愿诸君明天依旧光芒万丈。好记性不如烂笔头,让我们一起努力。小蛙今天也是收获满满!!!
小声bb环节:我说的很小声你们应该听不见(你们要是不学习,本蛙可就要超过你们了)
1.装饰器介绍
1.1. 为何要用装饰器
软件的设计应该遵循开放封闭原则,即对扩展是开放的,而对修改是封闭的。对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。对修改封闭,意味着对象一旦设计完成,就可以独立完成其工作,而不要对其进行修改。
软件包含的所有功能的源代码以及调用方式,**都应该避免修改,否则一旦改错则就有可能产生连锁反应,最终导致程序崩溃,而对于上线后的软件,新需求或变化又层出不穷,我们必须为程序提供扩展的可能性,**这就用到了装饰器。为了在不修改被装饰器对象源代码添加新功能
1.2. 什么是装饰器
’装饰’代指为被装饰对象添加新的功能,’器’代指器具/工具,装饰器与被装饰的对象均可以是任意可调用对象。概括的讲,装饰器的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象额外的功能。装饰器经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等应用场景,装饰器是解决这列问题的绝佳设计,有了装饰器,就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。
提示:可调用对象有函数,方法或者类,此处我们单以本章主题函数为例,来介绍函数装饰器,并且被装饰的对象也是函数。
装饰器指的定义一个函数,该函数是用来为其他函数添加额外的功能
装饰器是一个用来为被装饰者添加功能的工具
被装饰者:函数
装饰器:可以用函数实现装饰器这种工具
2. 装饰器的实现
函数装饰器分为:有参装饰器和无参装饰器两种,二者的实现原理一样,都是’函数嵌套+闭包+函数对象‘的组合使用的无产物。
2.1. 无参装饰器的实现
2.1. 有参装饰器的实现
结束收工环节
声明: 呜呜呜 ,蛙脸没了啊,兄弟萌
兄弟们,塞不塞,6不6,就是这么简单,就是这么快乐,今天小蛙好细啊。愿诸君能在代码的世界里自由的翱翔。
内容有点多,一定要好好吸收。
喜欢的话,一定要去看本蛙其他作品哦,不喜欢的话,锤你。
本蛙要去拉啦啦,嗝。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!