Typemock和Dependency Injection仍然使用接口?

时间:2009-10-23 13:19:42

标签: c# .net 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) 
    {

    }
}

你有什么想法?

1 个答案:

答案 0 :(得分:2)

使用接口,您可以选择根据配置替换运行时使用的实际类型。你可以 使用类来执行它,如果你继承它们,但只使用接口它就更容易了。

我的建议是继续使用接口。

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