在不同的命名空间中复制一个类有什么缺点?

时间:2013-02-01 19:04:34

标签: c# .net

我有一个名为SimpleCommand的班级。它是一个单一的文件类,以非常简单的方式实现ICommand(因此名称)。

我发现我正在把它放在我的几个项目中。 (我只是复制代码并将其添加到项目中。)

这些项目都在同一个解决方案中,并产生了wpf应用程序。

我的问题是:除了稍微增加我的DLL的大小之外,复制此代码有什么缺点?

(我正在努力决定是否值得将它放入nuget包中。)

注意:我多年来没有更改此代码,我不打算这样做。

2 个答案:

答案 0 :(得分:3)

这里的问题不是在不同的命名空间中存在具有相同名称的各种类。

问题是你要复制代码,这真是个坏主意。

如果您想将SimpleCommand扩展为ABitMoreComplexCommand,您最终会将其全部复制。

如果您需要按类型将一个命令与另一个命令进行比较,则无法可靠地执行此操作 - 您可能实施的启发式方法可能会给您带来误报

底线:制作另一个项目,将所有可重复使用的代码放在那里,不要复制它

答案 1 :(得分:2)

复制和粘贴是重用代码IMO最有效的方法。如果你决定在这个类中添加一个简单的bool属性会发生什么?你必须像复制和粘贴它一样多次。

我建议将这些可重用的部分组合在一个DLL中,并从多个项目中引用它们。