在 Ruby 中,所有的类都是永远开放的。几乎任何时候都可以将新行为添加到任何类中。有没有办法在 VB.NET 中做到这一点?
例如,如果我希望现有应用程序(大型应用程序)中的所有 DataRows 都采用新行为,该怎么办。我意识到我可以创建一个从 DataRow 继承的自定义行类,但继承不是我所追求的。这将涉及大量返工,以确保在所有地方都实例化行,我们是从自定义行类中实例化的。
关于如何做到这一点,我有两个粗略的想法:
我突然想到方面(AOP)可以在这里工作。 有没有办法在现有方法之上分层行为?
是否可以将给定的接口应用于现有的类。
这里的主要目标是不必对现有代码进行任何大型改造。系统实际上应该忽略这些分层的行为/方面。它应该涉及对代码库的最小更改。
目前,我们使用装饰器类实现分层方面。问题是,系统知道本地行和行装饰器对象之间的区别。我希望能够传递系统认为是本机行的东西。同样,系统不需要注意应用于行的装饰。它应该认为它有一个行,而不是一些特殊的装饰器。
具体来说,我想装饰一行的默认 set Item(colName) 属性,以便我可以修改传入的值。