AOP
- Aspect Oriented Programming
- 面向切面编程
- 如果想实现如日志功能,相同代码会分散到各个方法中,如果想关闭或者修改,就必须修改所有相关的方法。增加工作量,提高了出错率。
- 是OOP的延申和补充
- 采取横向抽取机制
- 开发人员可以专心于核心业务,不必过多关注其他业务逻辑,提高开发效率,增强代码可维护性
术语
- Aspect(切面):封装的用于横向插入的类
- Joinpoint(连接点):方法的调用
- Pointcut(切入点):切面和程序流程的交叉点,即那些需要处理的连接点,通常指类或者方法名
- Advice(通知增强处理):切面类中的方法,是切面的具体体现
- Target Object(目标对象):被增强的对象,被代理的对象
- Proxy(代理):对动态创建的对象
- Weaving(织入):将切面代码插入到目标对象,生成代理对象的过程