1

我知道 VB.NET 有许多面向方面的框架。为了向几个方法添加一个方面,将整个框架投入使用有点繁重。VB.NET 是否提供了一种简单的方法(通过某种元编程/反射)在类/对象中的现有方法之上分层方面?

基本上,目标是拦截方法的传入消息以调用它并添加副作用或操纵请求,就像在标准 AOP 中通常所做的那样。

有没有将方面直接集成到语言中的计划?

4

2 回答 2

1

在这种情况下,多态不是一种选择吗?我想您会发现,在某种 AOP 框架之外,VB 无法更改现有类的功能。您可以继承和覆盖基成员,也可以使用扩展方法向现有类添加附加功能,但无法更改现有类中的现有功能。

可以创建一个模仿另一个现有库的新库,并欺骗现有代码认为您的新库是原始库,但除非绝对必要,否则这是一个坏主意。您可能只需要以标准的 OOP 方式重新思考您的设计,而不是用 AOP 术语思考。

于 2012-07-09T13:41:07.170 回答
0

装饰器(或代理)模式怎么样?由于它只有几个方法,那么你只需要一两个装饰器类。如果你后来发现它不仅仅是一两种方法,那么你可以考虑引入一个 AOP 工具。

这是C#中的一个示例,应该很容易转换为 VB.NET

于 2012-07-14T03:42:19.873 回答