我知道VB.NET有很多面向方面的框架。为了向几个方法添加一个方面,将整个框架发挥作用有点沉重。 VB.NET是否提供了一种简单的方法(通过某种元编程/反射),在这种方法中将一个方面层叠在一个类/对象中的现有方法上?
基本上,目标是拦截方法的传入消息以调用它并添加副作用或操纵请求,就像通常在标准AOP中那样。
是否有计划将方面直接整合到语言中?
答案 0 :(得分:1)
在这种情况下,多态不是一种选择吗?我想你会发现,在某种类型的AOP框架之外,VB中没有办法改变现有类的功能。您可以继承和覆盖基本成员,也可以使用扩展方法向现有类添加其他功能,但无法更改现有类中的现有功能。
可以创建一个模仿另一个现有库的新库,并使现有代码认为您的新库是原始库,但除非绝对必要,否则这是一个坏主意。您只需要以标准的OOP方式重新考虑您的设计,而不是用AOP术语思考。
答案 1 :(得分:0)
装饰器(或代理)模式怎么样?因为它只有几个方法,所以你只需要一个或两个装饰器类。如果您稍后发现它不仅仅是一种或两种方法,那么您可以考虑引入AOP工具。
这是一个example in C#,应该很容易翻译成VB.NET