AOP是一种编程范式,提供从另一个角度来考虑程序结构以完善面向对象编程(OOP)
编程范式
相对于编程思想、处理方法、方式上进行指导,尽量遵守
OOP为主,OOP为有益的补充
构建软件的体系的时候,默认是由上层依赖下层,一个模块的内部,也是上层依赖下层
使用OOP设计的时候,一般是上下思考方式
换另外一个角度,来思考程序,就能够发现不同模块拥有很多相同的功能
如何处理不同模块拥有共同功能?
AOP是一种用来帮助我们解决横切关注点(我们关注多个模块多个公共功能)模块化的编程范式
以前:由应用程序主动调用公共的模块
缺点
应用程序(逻辑部分)和公共模块是一种强耦合的关系
每个应用程序都要去添加和对公共模块的调用,增加了很多无味的代码