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