c# – Typemock和Dependency Injection,仍然使用接口?

我在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) 
    {

    }
}

你的想法是什么?

最佳答案 使用接口,您可以选择根据配置替换运行时使用的实际类型.你也可以使用类来实现它,如果你继承它们,但只使用接口它更容易.

我的建议是保持接口.

说实话,我反过来写我的服务.首先我更新接口,因为我在那时的“世界”更加有限,让我更多地考虑我在界面中可以做的事情,然后我更新具体类型.

点赞