【Python面向对象06】装饰器与基本设计原则

本文探讨了Python中装饰器的应用及其与SOLID设计原则的关系。装饰器作为语法糖,用于增强函数功能;SOLID原则则指导软件设计,确保代码质量。文章详细解释了每个原则的含义及应用。

06 装饰器与SOLID设计原则

装饰器

本质是对函数闭包的语法糖

函数闭包

  • 一个函数,参数和返回值都是函数
  • 用于增强函数功能,其返回值函数是对传参函数的功能增强后的结果
  • 面向切面编程(AOP)
  • 对于含有参数的函数,调用闭包增强后,不能成功接收参数

语法糖

  • 指计算机语言中添加某种语法,对语言功能没有影响,但更方便程序员使用。
  • 语法糖没有增加新功能,只是更便捷的写法,可以完全等价的转换为原本非语法糖的代码

装饰器

  • 将装饰器写在某个函数上,当系统第一次调用该函数时,自动启动装饰器,增强该函数。只在第一次调用时增强,也只增强一次【完成一种已变身的状态,之后使用这个函数都是这种状态】
  • 多个装饰器装饰时,先调用下面的装饰器装饰函数,但是调用函数执行时,先执行的上面的函数增强后的功能

SOLID设计原则

S(single responsibility principle)——单一职责原则

  • 一个类只负责一项职责
  • 易于维护,写出高内聚的代码,易于代码复用

O(open closed principle)——开放封闭原则

  • 对扩展开放,对修改关闭
  • 易于维护,保证代码安全性以及扩展性

L(liskov substitution principle)——里氏替换原则

  • 使用基类引用的地方必须能使用继承类的对象
  • 防止代码出现不可预知的错误
  • 方便针对与基类的测试代码,可以复用在子类上

I(interface segregation principle)——接口分离原则

  • 如果一个类包含了过多的接口方法,而这些方法在使用的过程中并非“不可分割”,那么应当把他们进行分离
  • 所谓接口,在Python中可以简单理解为“抽象方法”
  • 这一原则的好处是,提高接口的重用价值

D(dependency inversion principle)——依赖倒置原则

  • 高层模块不应该直接依赖低层模块,应该依赖抽象类或者接口
  • 利于代码维护
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值