目录
一、AOP 相关概念
1、什么是 AOP?
AOP:Aspect oriented Programming 面向切面编程/面向方面编程。
AOP 是 OOP 的延续,从 OOP 说起。
OOP:Object Oriented Programming 面向对象程序设计。
OOP 三大特征:封装、继承和多态。
oop 是一种垂直继承体系(继承)。
OOP 编程思想可以解决大多数的代码重复问题,但是有一些情况是处理不了的,比如说在一个类多个方法中相同位置拥有重复代码,OOP 就解决不了。
此时就出现了横切逻辑代码。
在多个纵向(顺序)流程中出现的相同子流程代码,我们称之为横切逻辑代码。
横切逻辑代码的使用场景很有限:一般是事务控制、权限校验、日志。
横切逻辑代码存在什么问题:
- 横切代码重复问题;
- 横切逻辑代码和业务代码混杂在一起,代码臃肿,维护不方便。
AOP 出场,AOP 独辟蹊径提出横向抽取机制,将横切逻辑代码和业务逻辑代码分析。
代码拆分容易,那么如何在不改变原有业务逻辑的情况下,悄无声息的把横切逻辑代码应用到原有的业务逻辑中,达到和原来一样的效果,这个是比较难的。
2、AOP在解决什么问题?
在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复。<