我有一个名为SimpleCommand的班级。它是一个单一的文件类,以非常简单的方式实现ICommand(因此名称)。
我发现我正在把它放在我的几个项目中。 (我只是复制代码并将其添加到项目中。)
这些项目都在同一个解决方案中,并产生了wpf应用程序。
我的问题是:除了稍微增加我的DLL的大小之外,复制此代码有什么缺点?
(我正在努力决定是否值得将它放入nuget包中。)
注意:我多年来没有更改此代码,我不打算这样做。
答案 0 :(得分:3)
这里的问题不是在不同的命名空间中存在具有相同名称的各种类。
问题是你要复制代码,这真是个坏主意。
如果您想将SimpleCommand扩展为ABitMoreComplexCommand,您最终会将其全部复制。
如果您需要按类型将一个命令与另一个命令进行比较,则无法可靠地执行此操作 - 您可能实施的启发式方法可能会给您带来误报
底线:制作另一个项目,将所有可重复使用的代码放在那里,不要复制它
答案 1 :(得分:2)
复制和粘贴是重用代码IMO最有效的方法。如果你决定在这个类中添加一个简单的bool属性会发生什么?你必须像复制和粘贴它一样多次。
我建议将这些可重用的部分组合在一个DLL中,并从多个项目中引用它们。