先上概念
不管你是否能看懂,了解一下概念还是有必要的。
AOP是OOP的延续,是Aspect Oriented Programming的缩写,直译意思:面向方面编程、面向切面编程。
AOP通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。可以在代码阶段实现分离关注,实现松耦合,然后在运行时将相关动作特征植入运行,从而改变程序的运行顺序,达到拦截或者增加功能的目的。
AOP的好处
解耦:AOP将程序中的共性问题进行了剥离,毫无疑问地降低了各个业务模块和共性问题之间的耦合。
重用性:共性问题散落于业务逻辑的各处,十分难维护,使用AOP进行提取后,能够将相似功能的共性问题收敛,减少重复代码,提高了代码的重用性。
拓展性:对于一个程序而言,迭代的重心一定在于业务和功能上。AOP使得每当发生变更时,可以只关注业务逻辑相关的代码,而减少共性问题上带来的变化,大大降低了程序未来拓展的成本。
生活中的AOP
第一次接触的人是会有一点蒙圈,要理解AOP(面向切面编程),首先我们要明白什么叫做切面ÿ