我对类型化/泛型方面做了一些研究。关于方面的一个重要事实是遗忘。因此,方面的关注点应与领域关注点正交。但是,有一些研究可以使AspectJ类型安全(StrongAspectJ)/使用泛型介绍每个类型的方面。一篇论文提到了Flyweight模式的实现。现在我想知道通用方面是否还有更多用例?
最佳答案
PostSharp的输入类型较弱,即建议将参数和返回值视为“对象”。 PostSharp中有一些对泛型方面的支持(方面可以是泛型类),但由于通知类型较弱,因此它不是很有用。
请注意,在封面后面,强烈键入了PostSharp生成的粘合代码。但是当暴露给方面代码时,一切都被低估到对象上。
我正在考虑在下一个版本的PostSharp中实现强类型建议,并可能通过支持通用参数来实现。原因是运行时性能,因为将值类型装箱到对象中会带来可观的性能开销。请注意,泛型在.NET中的实现与在Java中的实现不同,因此在这两个平台上可能需要不同地讨论这一点。
如果您的论文需要任何帮助,请随时与我联系。