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