我应该为所依赖的类的接口使所有类型都是通用的吗?

时间:2017-06-03 05:57:34

标签: c# dependency-injection interface

好的,所以我试图解耦我的代码。我不想在整个地方使用单例,而是使用依赖注入和接口。到目前为止一切都很好。

现在,我有一个大型网络类,它使用其他网络类作为参数或返回其方法类型。例如:

public class Network
{
    void OnServerError(NetworkConnection conection, int errorCode);
}

public class NetworkConnection
{
    public NetworkError lastError { get; }
}

public class NetworkError
{
    public string Error { get; private set; }
}
  1. 为Network类创建接口是否有意义?
  2. 如果是这样,我是否需要使所有类型都通用?对于具有公共方法的类的类型,是否还需要为其创建接口?基本上在类中继续深入,直到所有东西都是接口或泛型类型?
  3. 我想为这个类创建一个接口的原因之一是我以后可能会切换到另一个网络库,我不想在任何地方重构所有内容,尽管我的初始接口将具有几乎与我现有的网络类相同的签名,所以无论如何我不得不在将来重构它。我错过了什么?

1 个答案:

答案 0 :(得分:0)

您不一定需要使用Network接口来利用依赖注入。

当我在这个项目的十字路口时,如果没有明确的理由从我的课程中提取界面,我想,"我是否想要写一个Mock实现这种类型的测试场景?"

在某些测试中,您可能希望模拟某些场景或行为。模拟实现对此非常有用。

有些类是有意义的,但不是在所有情况下。

希望这有帮助!

相关问题