0

以下のスニップには、3 つのインターフェイスを使用するコントローラーがあります。これらはNinject経由で配線されています。間違いなく正しい方向への一歩です。私の質問はこれですか?

1.) 3 つのインターフェイスを 1 つのインターフェイスにラップし、そのように実装して、コントローラーの 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 に答える