autofac で依存性注入を使用する ASP.NET MVC3 ソリューションに取り組んでいます。私たちのコントローラーは autofac によって適切に作成されており、必要なすべてのオブジェクトが適切に渡されています。これらのオブジェクトには通常、サービス、リポジトリ、およびドメイン オブジェクトを MVC (ビュー) モデルに変換するマッパーが含まれます。したがって、コントローラーのコンストラクターは次のようになります。
public abcController(
ILogger logger,
IabcRepository abcRepository,
IabcService abcService,
IMapper<AbcDomain, AbcViewModel> abcMapper,
...
)
残念ながら、時間が経つにつれて、これらのコンストラクターのパラメーター リストは非常に急速に大きくなる傾向があります。一部のコントローラーは、現在 60 以上のパラメーターを想定しています。
ここでアンチパターンを作成しましたか?
編集
薄いコントローラーのパターンに従おうとしていることは言及しておくべきでした。また、これらのパラメータのほとんどはマッパーである傾向があり、約 66% です。通常、制御メソッドは非常に単純で、次のいずれかのパターンに従います。
- パラメータに基づいて、適切なサービスまたはリポジトリを呼び出します
- マッパーを使用して結果を適切なビュー モデルに変換する
- ビューモデルをビューに渡す
またはこのパターン:
- 投稿アクションからモデルを受け取る
- マッパーを使用して、適切なドメイン オブジェクトに変換します
- ドメイン オブジェクトを使用して適切なサービスまたはリポジトリを呼び出す