今天总结下一直困扰我很长时间关于AOP术语的一些解释 ,网上虽然有很多但是我也看了无数才弄明白
AOP
AOP是面向切面编程的简称,是OOP(面向对象编程的扩展),今天我们主要来介绍有关AOP术语的解释
切面
一个关注点的模块化,这个关注点实现可能另外横切多个对象
还是通俗点讲吧,举个通俗的例子,切面我们可以把它看成一个黑盒。在面向对象编程中,我们把功能还有属性封装起来,叫做一个类。在AOP中我们封装好的东西叫做切面。千万不要将切面理解成一个面,这里我们可以忽略他的字面意思,就把他想象成一个黑盒。
黑盒里面装的什么呢,装的切入点(后面会介绍)以及增强的功能方法组成。
切入点
指定一个通知将被引发的一系列连接点的集合
简单来说,切入点就是我们所要在执行哪个方法上进行我们增强功能的执行,也就是说,切入点表示的就是我们在执行整个原来的完整流程时,停在某个方法去执行我们所需要的增强方法,该方法就是我们的切入点。一个增强方法可以执行在多个方法中,也就是说,切入点不止一个,切入点代表的是所有的这些方法的集合。
连接点
连接点是一个虚拟的概念,可以理解为所有满足切点扫描条件的所有的时机?
当我们找到那个目标方法也就是切入点以后 ,我们要去判断我们到底需要在这个方法执行的什么时机去执行我们的增强功能。在方法执行之前,还是之后,还是执行过程中等等,这就是我们的连接点。也就是我们方法执行的时机
目标对象
?包含连接点的对象。也被称作被通知或被代理对象
这个好理解一些,就是我们的增强方法要执行到哪个对象上。
增强(通知/Advice)
?在特定的连接点,AOP框架执行的动作
就是我们的增强方法,就是个函数
引入
添加方法或字段到被通知的类
这里千万注意,引入是一个动词,也就是一个动作,就是把我们的增强方法添加到我们的目标对象或者目标方法的这个行为我们叫做引入。
造个句吧,比如说在A方法执行之前引入B方法。
织入
组装切面来创建一个被通知对象?
这也是个动词,织入的意思就是我们把切面以及我们的整个原始对象组装起来,成为一个新的代理对象,这个过程就叫做织入。
我们在切面中已经拿到了代理增强的必要信息,我们就可以通过整合切面,生成一个完整的,公功能增强后的对象就叫做切面。?
?
?
|