1、AOP的作用?
AOP很好地解决系统需求问题,无需在业务需求代码前后插入代码,降低了代码间的耦合度并且提高了系统需求代码的复用率。
2、什么是AOP?
AOP就是面向切面编程,使用AOP,可以对Logging和Security等系统需求进行模块化处理,简化系统需求和实现之间的对比关系,进而使整个系统的实现更具模块化。
一般来讲,我们希望软件开发的时候,各个对象之间互相调用,实现我们想要的需求。但实际开发中,日志记录、安全检查、事务管理等系统需求就像一把刀“恶狠狠”地横切到我们组织良好的各个业务模块之上。以AOP的行话来说,这些系统需求就是系统中的横切关注点。使用传统方法,我们无法更好地以模块化的方式对这些横切关注点进行组织和实现。所以AOP引入了Aspect的概念,用来以模块化的形式对系统中的横切关注点进行封装。
3、何为Aspect?
Aspect之对于AOP,相当于Class之对于OOP。AOP是对OOP的一种补充。当我们把用Class形式模块化的业务需求和以Aspect形式模块化的系统需求拼装到一起的时候,整个系统就算完成了。
4、AOP如何发挥作用?
与OOP需要相应的语言支持一样,AOP也需要某种语言以帮助实现相应的概念实体,这些语言称为AOL。AOL可以和系统实现语言相同,比如系统实现语言为Java,那么相应的AOL也可以为Java。也可以不同,比如AspectJ是扩展自Java的一种AOL,与Java属于不同的两种语言。
AOP的各个概念实体,最终要以织入(Weave)的方式集成到系统实现语言所实现的OOP实体组件中去。将AOP的Aspect织入到OOP系统的实现方式很多。但不管如何实现,织入过程是处于AOP和OOP的开发过程之外的,而且对于整个系统的实现是透明的,开发者只需要关注相应的业务需求实现,或者系统需求的实现即可。当所有的业务需求和系统需求以模块化的形式开发完成之后,通过织入过程就可以将整个的软件系统集成并付诸使用。