AOP的理解
AOP面向切面编程只要是解决OOP(面向对象编程)的共性问题和扩展问题
AOP的作用是将公共的功能提取出来,公共的模块,只关注通用功能,不关注业务逻辑
AOP的优势:
1.将通用功能从业务中抽离出来,提高代码的复用性。有利于后期的维护和拓展。
2.在软件设计时,抽出通用功能,有利于软件设计的模块化,降低架构的复杂度。
AOP与OOP的区别:
OOP是针对业务处理过程的实体,属性,行为进行封装
AOP则是针对业务处理过程中的切面进行提取,面对处理过程中的某个步骤或阶段,逻辑过程中各个部分的低耦合性
它们针对的目标是完全不同的
总结:
1.面向目标不同:OOP是面向名词,AOP是面向动词。
2.思想结构不同:OOP是纵向,AOP是横向
3.注重方面不同:OOP注重业务逻辑单元划分,AOP偏重业务处理过程中的某个步骤
AOP并不是OOP的升级,它是对OOP的不足的弥补,解决OOP存在的问题。
AOP代码实现:
1.装饰器模式:
2.代理模式:
面试题
1.AOP有哪些可用的实现?
答:AspectJ 、Spring AOP、 JBoss AOP …