Lista de argumentos de constructor de controlador masivo cuando se usa DI en MVC
Estoy trabajando en la solución MVC3 de ASP.NET que utiliza la inyección de dependencia con autofac. Nuestros controladores están siendo creados por Autofac y de manera adecuada, y todos los objetos requeridos se pasan correctamente. Estos objetos generalmente incluyen servicios, repositorios y mapeadores que convierten el objeto de dominio a los modelos MVC (vista). Entonces el constructor del controlador se ve algo así como:
public abcController(
ILogger logger,
IabcRepository abcRepository,
IabcService abcService,
IMapper<AbcDomain, AbcViewModel> abcMapper,
...
)
Desafortunadamente, con el tiempo, esas listas de parámetros del constructor tienden a crecer bastante rápido. Algunos de nuestros controladores esperan ahora 60 o más parámetros.
¿Hemos creado algún anti-patrón aquí?
EDITAR
Debería haber mencionado que tratamos de seguir el patrón de control delgado. También la mayoría de esos parámetros tienden a ser mapeadores, alrededor del 66%. Los métodos de control son generalmente muy simples, y siguen este patrón:
Basados en los parámetros, llamar al servicio o repositorio adecuado.Use el mapeador para convertir el resultado al modelo de vista apropiadoPase el modelo de vista para verO este patrón:
Recibe el modelo de la acción posteriorUse el mapeador para convertirlo en un objeto de dominio apropiadoInvocar el servicio o repositorio apropiado con objeto de dominio