我在DI中看到了一些好的设计优势,而不仅仅是良好的可测试性设计.所以即使我有Typemock并且可以在没有IOC的情况下进行单元测试,我仍然更喜欢构造函数DI.我认为这是快速发现类的依赖关系的好方法.
现在我想知道我应该继续使用接口作为构造函数中的type参数.使用Resharper很容易创建它们,但它仍然是我不需要的类型.
我的意思的一个简单例子
public interface IService
{
void Method();
}
public class Service : IService
{
public void Method()
{
}
}
public class ClassThatUsesDI
{
public ClassThatUsesDI(IService service) **or** (Service service)
{
}
}
你的想法是什么?
最佳答案 使用接口,您可以选择根据配置替换运行时使用的实际类型.你也可以使用类来实现它,如果你继承它们,但只使用接口它更容易.
我的建议是保持接口.
说实话,我反过来写我的服务.首先我更新接口,因为我在那时的“世界”更加有限,让我更多地考虑我在界面中可以做的事情,然后我更新具体类型.