ComboBox 的项目正在从某些 DB 缓存等中提取。该 ComboBox 已在一个程序集中使用,因此该程序集中有关于如何加载数据的代码。现在在第二个程序集中,我再次拥有相同的组合框,并且应该再次填充相同的项目,因此为该组合框加载项目的代码是相同的。
现在:我可以在我的新程序集中复制粘贴该 Load 方法,或者我可以添加对该程序集的引用并创建该方法所在的类的实例,然后调用该方法。(它的方法在那个类中不是静态的)
您建议采用哪种方法?
ComboBox 的项目正在从某些 DB 缓存等中提取。该 ComboBox 已在一个程序集中使用,因此该程序集中有关于如何加载数据的代码。现在在第二个程序集中,我再次拥有相同的组合框,并且应该再次填充相同的项目,因此为该组合框加载项目的代码是相同的。
现在:我可以在我的新程序集中复制粘贴该 Load 方法,或者我可以添加对该程序集的引用并创建该方法所在的类的实例,然后调用该方法。(它的方法在那个类中不是静态的)
您建议采用哪种方法?
也许您可以拥有一个“共享类”,其中包含可以在两个程序集中使用的代码,以防您有更多这种情况的实例?
例如Shared.PopulateLocatons(cmbLocations)
,所以这个函数包含填充位置的代码,但它是可以从任何程序集调用的共享库的一部分?
如果您不需要,就没有必要复制代码:)
从广义上讲,我提倡 DRY(不要重复自己)原则。除非有很好的理由不这样做,否则不要复制代码——创建一个帮助类或其他共享代码设备,您可以在其中放置代码,然后从两个地方调用它。这样,如果进行了更改,则只需进行一次,如果需要第 3/4/n 次使用,您将不需要相同代码的 3/4/n 次重复。
这是非常主观的。对于一种方法,我只是复制粘贴,但请注意——如果您后来发现您想从该程序集中使用更多内容,那么您可能需要添加一个引用(并重构复制粘贴)。
如果两个程序集仍在使用中(即以后会更改),那么显然 import + 使用相同的类。如果该方法需要更改,则需要在两个地方进行。这是维护的噩梦。
如果另一个程序集被“放弃”(永远不会再更改),我想你可以只复制代码就可以逃脱。