Aspect-Oriented提出了一种新的代码组织方案,即日志代码、安全代码、事务代码等辅助性代码(Ancillary functionalities)不应该与[b]业务逻辑代码[/b]交织在一起。这些功能可通过框架的AOP特性来参与程序。
为了重用通用的功能,可以使用继承和代理。但是它们各有弊端。
Aspect提供了另外的方案:
在AOP的帮助下,我们可以集中地定义这些通用功能,然后再设置这些功能的应用方式和位置,而不用修改那些需要应用这些新功能的类文件。这些通用功能的集结地就成为Aspect。
AOP中的术语:Advice, Pointcut, Join points
Advice定义了辅助功能与业务逻辑的相对执行顺序。辅助功能可能会对很多业务逻辑功能发挥功能,每个需要添加辅助功能的时机称作一个Join point。这些时机可能是业务逻辑执行之前、执行之后、或者抛出异常之时。Pointcut限制了Advice的适用范围。
另外还有Introduction用来表示为业务功能增加辅助功能。Weaving表示将业务功能与辅助功能编织在一起的过程,编织的时机可以是目标类编译时、目标类装载时和目标类运行时(采用代理的方式)。
为了重用通用的功能,可以使用继承和代理。但是它们各有弊端。
Aspect提供了另外的方案:
在AOP的帮助下,我们可以集中地定义这些通用功能,然后再设置这些功能的应用方式和位置,而不用修改那些需要应用这些新功能的类文件。这些通用功能的集结地就成为Aspect。
AOP中的术语:Advice, Pointcut, Join points
Advice定义了辅助功能与业务逻辑的相对执行顺序。辅助功能可能会对很多业务逻辑功能发挥功能,每个需要添加辅助功能的时机称作一个Join point。这些时机可能是业务逻辑执行之前、执行之后、或者抛出异常之时。Pointcut限制了Advice的适用范围。
另外还有Introduction用来表示为业务功能增加辅助功能。Weaving表示将业务功能与辅助功能编织在一起的过程,编织的时机可以是目标类编译时、目标类装载时和目标类运行时(采用代理的方式)。