Asp.net mvc 3 我应该最小化控制器中的接口数量吗?

Asp.net mvc 3 我应该最小化控制器中的接口数量吗?,asp.net-mvc-3,domain-driven-design,ninject-2,Asp.net Mvc 3,Domain Driven Design,Ninject 2,在下面的剪报中,我有一个控制器,它有三个接口。这些都是通过Ninject连接的。好的,很好,肯定是朝着正确的方向迈出了一步。我的问题是这个 1.)以这种方式将3个接口包装成一个接口和一个实现是否更好,从而减少传递给控制器的ctor的参数量? 2)别管它,它在工作吗 我总是想办法把一切都抽象出来。。 想法 public class RegistrationController : Controller { private readonly ICategoriesService _categ

在下面的剪报中,我有一个控制器,它有三个接口。这些都是通过Ninject连接的。好的,很好,肯定是朝着正确的方向迈出了一步。我的问题是这个

1.)以这种方式将3个接口包装成一个接口和一个实现是否更好,从而减少传递给控制器的ctor的参数量? 2)别管它,它在工作吗

我总是想办法把一切都抽象出来。。 想法

public class RegistrationController : Controller
{
    private readonly ICategoriesService _categoriesService;
    private readonly IAuthenticationService _authenticationService;
    private readonly IRegistrationService _registrationService;

    // Ctor
    public RegistrationController(ICategoriesService categoriesService, 
        IAuthenticationService authenticationService,
        IRegistrationService registrationService)
    {
        _categoriesService = categoriesService;
        _authenticationService = authenticationService;
        _registrationService = registrationService;
    }
}

拥有一个巨大的接口(或者一个巨大的类,这是实现一个巨大接口所需要的),因为它“方便”被广泛认为是一种选择。根据您当前接口的名称,它们似乎围绕它们提供的操作类型进行了良好的逻辑结构,我建议您保持这种方式(这也提供了更高的灵活性,因为可能还有其他地方您只需要一些接口)


顺便说一句:如果你有适当的单元测试和集成测试,“别管它,它正在工作”是一个永远不需要的短语

除了标题,我想得太多了:-)一个好的标题是成功的一半。我想知道为什么我的标题变了,哈哈。。。谢谢你,伙计。因为我是这里的一员,这让我等了8分钟才接受asnswer。虽然这很酷,但我会保持现状并继续。非常感谢,我对快速响应表示赞赏。@Code Jammr:没问题;不管怎样,大多数答案都不会那么快被接受(等待多个答案累积,然后选择最好的答案是完全合理的——特别是因为问题是关于代码设计的,所以很可能有人会与我的观点相反)。:-)