aop(面向切面编程) 和oop(面向对象编程) 一样是一种编程思想,同时aop 是对oop 缺陷的补充。
oop 是由继承、封装、多态的概念来编写代码的,当使用oop 为一些对象的方法添加公共行为的时候(如日志,事务,权限控制等),用oop 的思想就变得非常复杂了。
因为这些对象分散在各各”角落”,项目小还好,如果项目打大,如果要给这些对象加上公共行为的话,无疑是非常麻烦而又枯燥的。而且还增加了项目的依赖。而aop 把项目从上到下的执行突然切过,而且还不影响程序的正常运行,就是把这些切入的代码删除也不会影响到。
概念
在oop 中编写代码的规则是继承、封装、多态、抽象、而在aop 中如下:
术语 | 解释 |
---|---|
通知 | 通知有执行前通知、返回后通知、执行后通知、异常通知 |
连接点 | 连接点是一个虚的概念,用来了解aop 而来的,而连接点就是一个程序的某个位置,如一个属性、一个方法、一个构造函数 |
切入 | 切入指的是在某个连接点上加上通知,一个程序有多个连接点,但是我们想让他执行通知的不是全部 |
切面 | 切面是通知和切入的组合 |
目标对象 | 目标对象其实就是一个连接点的集合 |