AOP观念和术语
l AOP全名为Aspect-Oriented Programming
l Cross-cutting concern
在程序中常见到一些动作(如安全检查(Security Check)、事务(Transaction)、日志(Log)等系统层面的服务)被安插到各个对象的处理流程中,这些动作在AOP术语中称为Cross-cutting concerns 。
l Aspect
将Cross-cutting concerns设计成独立可重用的对象称为Aspect
l Advice
Aspect中对Cross-cutting concerns的具体实现称为Advice
l Joinpoint
Aspect在程序执行时加入业务流程的点或时机称之为Joinpoint,具体来说,就是Advice在程序中被执行的时机,这个时机可能是某个方法被执行之前或之后(或两者都有),或是某个异常发生的时候。
l Pointcut
Pointcut是一个定义,由这个定义您可以指定某个Aspect在哪些Joinpoint时被应用至程序上。具体的说,您可以在某个定义档中撰写Pointcut,当中说明了哪些Aspect要应用至程序中的哪些Joinpoint。(Pointcut定义了感兴趣的Jointpoint,当调用的方法符合Pointcut定义(表达式)时,将Advice织入到程序上并提供服务)
l Target
一个应用了Advice的对象
l Weave
Advice被应用到对象上的过程称为织入(Weave)
总结图: