【发布时间】:2017-11-04 13:38:27
【问题描述】:
好的,所以我正在尝试解耦我的代码。我不想到处使用单例,而是想对接口使用依赖注入。到目前为止一切顺利。
现在,我有一个大型网络类,它使用其他网络类作为其方法的参数或返回类型。例如:
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; }
}
- 为 Network 类创建接口是否有意义?
- 如果是这样,我是否需要将所有类型设为通用?对于具有公共方法的类的类型,我是否还需要为其创建接口?基本上在类中继续深入,直到一切都成为接口或泛型类型?
- 我想为这个类创建一个接口的原因之一是我将来可能会切换到不同的网络库,我不想在任何地方重构所有东西,尽管我的初始接口将具有相同的签名几乎我现有的网络课程,所以我可能不得不在未来重构它。我错过了什么?
【问题讨论】:
-
这里真正的问题是你的
Network类是否也被注入到其他类中......如果是这样,那么它可能会有用。正如 Glenn 的回答所指出的:DI 不需要接口,它们只是有用的。真正的答案完全取决于您,这取决于您的要求。您是要进行构造函数还是属性注入?你用的是什么容器?
标签: c# dependency-injection interface