1.OOP(Object-Oriented Programing,面向对象编程)是从上到下定义的关系,但并适合定义从左到右
的关系,这时面向(方面)切面编程-AOP就出现了。
例子:如项目中的日志功能,日志代码水平的分布在所有对象层次中,并且与业务逻辑毫无关系,
在OOP编程中导致大量的代码重复,不利于模块的重复利用。
2.使用“横切”技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程
是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关
注点的多处,而各处都基本相似。比如权限认证、日志、事务处理。Aop 的作用在于分离系统中的各种
关注点,将核心关注点和横切关注点分离开来。
3.实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装
饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得
编译器可以在编译期间织入有关“方面”的代码
4.横切关注点
一个关注点(concern)就是一个特定的目的,一块我们感兴趣的区域,一段我们需要的逻辑行为。从
技术的角度来说,一个典型的软件系统包含一些核心的关注点和系统级的关注点。举个例子来说,一个
信用卡处理系统的核心关注点是借贷/存入处理,而系统级的关注点则是日志、事务完整性、授权、安
全及性能问题等,许多关注点——即横切关注点(crosscutting concerns)——会在多个模块中出现
。应用AOP的横切技术,关键就是要实现对关注点的识别。
5.AOP很强大,把主干业务跟横枝业务分离出来。使得整个项目更简洁