0

我一直在我的应用程序中这样编码:

public class ContentController : ApiController
{
    private IUow _uow;
    private IContentService _contentService;

    public ContentController(
        IUow uow,
        IContentService contentService)
    {
        _uow = uow;
        _contentService = contentService;
    }

接着:

    container.RegisterType<IContentService, ContentService>();

我是这样开始的,因为我一直在阅读我应该如何使用接口来让一切变得可测试,并使用像 Unity 这样的东西来让改变变得容易。

但是一年或更长时间后,我仍然觉得不需要更改任何内容,而且我可以用其他方式测试我的应用程序,而无需使用不同的服务。

对于小型应用程序(< 20 个控制器),使用 Unity 之类的东西确实有任何优势。性能怎么样。它是否改善了任何事情或只是使事情复杂化。

4

1 回答 1

1

对于小型应用程序(< 20 个控制器),使用 Unity 之类的东西确实有任何优势。

是的,因为它让你编写更弱耦合的代码。

性能怎么样。它是否改善了任何事情或只是使事情复杂化。

不,它不会提高性能。

我可以用其他方式测试我的应用程序,而不需要不同的服务。

如果您不使用接口来削弱应用程序不同层之间的耦合,请不要自欺欺人地认为您正在对应用程序进行单元测试。您正在做的是集成测试,这也是必要的,但它用于不同的目的。

是否使用像 Unity 这样的 DI 框架并不重要。只需几行代码,您就可以很容易地排列自己的 DI。重要的是针对接口进行编程。

于 2013-10-21T06:20:53.413 回答