设计模式与并发控制:原理、实现与优化
1. 注解驱动的参与者模式
定义特定特征的注解往往存在一定难度。例如, Timing 注解的 value 属性应该使用什么单位呢?基于挂钟的任何单位在不同速度的机器上都可能是错误的。也许可以在作为基准的特定设置上使用毫秒,或者在基准 CPU 上使用 CPU 周期数。但能否轻松计算出这样的测量值呢?如果这类决策成为问题,转向基于主观特征的注解通常是一种务实的选择。
并非所有抽象在所有情况下都有意义,提供选择特定实现的自由总是可取的。使用不使用任何注解的抽象基方面可以解决这个问题,让子方面做出正确的抽象选择。
下面来探讨注解驱动的参与者模式(ADPP)的一种变体,它可以弥合这些抽象层次,并处理未注解的元素。
2. 桥接参与模式
一些注解会让开发者感到不适,他们觉得使用注解(尤其是特定框架的注解)会破坏普通 Java 对象的简洁性。例如,Spring 框架中的 @Configurable 注解。虽然大多数涉足领域对象依赖注入(DI)的开发者对用 @Configurable 注解标记类没有问题,但也有一些人会因领域类与 Spring 框架的耦合而感到不安。一方面,Spring 的方面期望类被标记该注解;另一方面,用该注解标记领域类会使它们变得不那么“纯粹”。
桥接参与模式有助于克服这一困境。在这种情况下,可以使用一个方面来提供框架方面期望的注解。该模式的核心思想是利用现有程序元素的某些特征,通过 AspectJ 中的 declare @type
超级会员免费看
订阅专栏 解锁全文

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



