面向切面编程示例:模式与复用
在软件开发中,面向切面编程(AOP)为解决横切关注点提供了强大的手段。本文将深入探讨 AOP 中的模式与复用,以持久化为例,展示如何将横切行为封装为可复用的方面,并应用到不同的场景中。
1. 调用与执行指示符的区别
在使用 AOP 时, call() 和 execution() 指示符是常见的讨论点。它们与 within / withincode 等指示符的交互方式有所不同。
- call() 指示符 :当调用者对被调用对象进行方法调用时匹配,且在被调用方法执行之前匹配,其作用域直到方法返回或抛出异常才结束。
- execution() 指示符 :在方法开始执行时匹配,并持续到最后一条语句执行之后。如果 call() 指示符匹配成功, execution() 指示符的作用域总是在 call() 指示符的作用域之内。
2. 使用 this() 和 target()
当 call() 和 execution() 指示符与 this() 和 target() 结合使用时,会有四种组合及可能的结果,
超级会员免费看
订阅专栏 解锁全文
168万+

被折叠的 条评论
为什么被折叠?



