0

我有 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
}
4

2 回答 2

2

使用多态来解决这个问题。您可以创建一个包含类共享方法的接口。让类实现这个接口。然后,您可以创建该接口的变量并将其中一个类分配给该变量。之后,您可以使用该变量访问该类并调用方法。
这样,您可以避免很多条件表达式,例如

If (cardNumber == 1) // ...
于 2013-11-05T15:25:32.223 回答
1

你的提议很好,但如果那样的话……流量控制可能会使你的方法变得复杂。

如果您能够通过提取通用代码片段来重构您的代码,那么您将能够为每张卡制作单独的方法。

这种方式可以重用您的代码并保持方法尽可能简单。

您可以在同一个 dll 或单独的 dll 上执行此操作并引用一个通用的。

于 2013-11-05T15:40:45.267 回答