0

在下面的片段中,我有我的控制器,它需要三个接口。这些是通过 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;
    }

}

4

1 回答 1

1

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

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

于 2011-04-15T14:36:57.970 回答