2

我需要添加一些额外的功能,其中包括向对象添加新属性以及在另一个处理该对象的类中扩展方法。我正在处理我们使用的产品的源代码(在 C# 2.0 中),我真的不想修改它,我只想扩展它。

理想情况下,我希望有一个单独的程序集来执行此操作,以便清楚它是我们的代码。似乎部分类和委托可能是要走的路,但我不确定这是否可行。有没有人做过类似的事情?或者知道什么好文章?

4

4 回答 4

3

查看装饰器模式。这正是您正在寻找的。您可以继承现有类并使用您拥有的任何其他逻辑对其进行扩展。如果你想隐藏一些基本功能,还有一个代理模式。

于 2009-04-03T10:04:11.823 回答
3

就像hfcs101说的。

看看你是否可以在给定一些现有的 OO 设计模式的情况下扩展该类。

看一眼:

看看您是否能找到与您的问题非常匹配的模式。Decorator 看起来是最佳人选。

于 2009-04-03T10:06:40.257 回答
0

好吧,您必须将原始类修改为“部分”类,并且您必须确保第二个程序集中的命名空间与第一个程序集中的命名空间匹配,并且两个程序集都是使用这些程序集的项目中的引用. 从那里你可以自由地扩展你的意志。

于 2009-04-03T08:48:33.863 回答
0

你可以从类继承还是密封?继承是扩展现有类的 OO 方式...

于 2009-04-03T09:05:19.563 回答