高级关注点分离技术深度解析
1. 切入点定义难题
切入点定义往往是静态的,这使得将抽象切入点定义隔离到单独的结构中,并根据原始切入点的使用位置,通过委托来选择多个具体版本之一变得不可能。例如:
pointcut checkAccessCut(int i): executions (* Resource1.foo(i)) ;
pointcut checkAccessCut(String s): executions (* Resource2.bar(s)) ;
abstract pointcut checkAccessCut(?) ;
这种情况建议采用更开放的编织过程,使切入点定义可以是对应用程序结构表示进行函数评估的结果。
2. 焦点小组研讨内容
2.1 ASoC 模型挑战问题
焦点小组列举了一些重要问题:
- 当前 ASOC 工具看似简单,需要更高级的解决方案,包括支持不同(可能重叠)方面的组合,让开发者了解不同方面的交互情况。
- 应结合现有技术,如 AOP 和 OOP 的优势,织入的代码理想情况下应仅包含对以“经典”方式编写的代码的外部调用。
- 目前缺乏对运行时方面的支持,ASoC 不应仅限于编译时编织,还应包括运行时编织。
未来的 ASoC 解决方案有望更加以领域为驱动,方面程序包含更高级别的信息,领域知识包含在方面定义中,编织器将根据方面定义对高级信息进行推理。方面定义现在可以在更高级别进行参数化,参数是与该领域相关的值。领域专家定义领域为方面的步骤如下:
1. 为该领域找到合适的参数集。
2. 确
超级会员免费看
订阅专栏 解锁全文
5256

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



