Los controladores son una parte vital de nuestra aplicación, en ellos ocurren procesos importantes del lado del servidor y muchas veces los controladores culminan albergando muchas líneas de código.
Tener controladores gordos no está muy bien que digamos. Particularmente, cuando programo controladores no me gusta llamar a Repositorios, prefiero utilizar instancias de servicios.
Para despejarme estas dudas pregunté esto en la comunidad AltnetHispano y muy gentilmente los muchachos me contestaron.
¿Porque los controladores suben de peso?
- Al usar directamente Repositorios en nuestros Controladores es probable que terminemos incluyendo Lógica de Negocio en ellos.
- Hacer reiterativas llamadas a servicios también es malo. En general, si esto es necesario es probable que necesites replantearte donde deberían ir esas líneas de código.
Recordemos, que en arquitecturas DDD, los repositorios pertenecen al Dominio pero en realidad son implementados o inyectados en la capa de infraestructura.
En la capa de servicios de aplicación, solo existen interfaces de servicios que luego son inyectados por algún IoC a los servicios con comportamiento.
Un controlador debería poder acceder al dominio para tener acceso a las interfaces de las entidades.
Conclusión:
Usar servicios de aplicación y que estos sean los encargados de acceder a los repositorios es definitivamente una buena idea.
Y recordemos siempre, los controladores deben ser lo más pequeños posibles y fáciles de entender.
Más información: The Fat Controller must die!