我有2个DLL,它们有90%相同的方法,每个DLL处理不同的外部卡。组织我的代码的最佳方法是什么,所以我可以编写更少的代码: 例如:
Call_Method_A(1); //1 is the dll/card number
public void Call_Method_A(int cardNumber)
{
if(cardNumber==1)
//call function from dll 1
else
//call functio from dll 2
}
答案 0 :(得分:2)
使用多态来解决这个问题。您可以创建包含类共享方法的接口。让类实现此接口。
然后,您可以创建该接口的变量,并将其中一个类分配给该变量。之后,您可以使用该变量访问该类并调用方法。
这样,您就可以避免使用许多条件表达式,例如
If (cardNumber == 1) // ...
答案 1 :(得分:1)
你的提议很好但是如果那时候流量控制可能会使你的方法复杂化。
如果您能够通过提取公共代码片段来重构代码,那么您就可以为每张卡片制作单独的方法。
这种方式可以重用您的代码并使方法尽可能简单。
您可以在同一个dll或单独的dll中执行此操作并引用常用的。