在这种情况下,最好是创建一个新类还是只复制粘贴一个方法?

时间:2012-09-10 15:42:50

标签: c# coding-style

ComboBox的项目正从一些数据库缓存等中提取。这个ComboBox已经在一个程序集中使用,因此在该程序集中有关于如何加载数据的代码。现在再次进行第二次装配我有相同的组合框,并且应该再填充相同的项目,因此加载此组合框的项目的代码是相同的。

现在:我可以在我的新程序集中复制粘贴Load方法或者我可以添加对该程序集的引用并创建该方法所在的类的实例,然后调用该方法。 (它的方法在那个类中不是静态的)

您建议使用哪种方法?

4 个答案:

答案 0 :(得分:4)

也许你可以拥有一个“共享类”,其中包含可以在这个场景中有更多实例的情况下在两个程序集中使用的代码?

E.g。 Shared.PopulateLocatons(cmbLocations)所以这个函数包含填充位置的代码,但是可以从任何程序集中调用的共享库的一部分吗?

如果您不需要复制代码,请不要重复:)

答案 1 :(得分:4)

从广义上讲,我主张干(不要重复)原则。除非有充分理由不重复,否则不要复制代码 - 创建一个辅助类或其他共享代码设备,您可以在其中放置代码,然后从两个地方调用它。这样,如果进行了更改,则只需要进行一次更改,如果需要第3次/第4次/第n次使用,则不需要使用相同代码的3/4 / n重复项。

答案 2 :(得分:1)

这是非常主观的。对于一种方法,我只是复制粘贴,但要注意 - 如果您以后发现要从该程序集中使用更多,那么您可能想要添加引用(并重构复制粘贴)。

答案 3 :(得分:1)

如果两个程序集仍在使用中(即稍后更改),那么显然导入+使用相同的类。如果该方法需要改变,则需要在两个地方进行。这是一场维护噩梦。

如果另一个组件被“放弃”(永远不会再被更改),我猜你只需复制代码就可以逃脱。