7

Estoy empezando con Dependency Injection (DI) usando Ninject y estoy trabajando a través de mis controladores buscando desacoplarlos de mis modelos un poco más.¿Debo crear una interfaz para cada modelo?

Por el momento, en el interior de mis controladores Estoy creando una instancia de algún modelo determinado por ejemplo:

var activitiesModel = new ActivitiesModel(); 

Para cada uno de mis modelos que he estado crear instancias de esta manera, debería extraer una interfaz para estos y luego usar DI para unir estas cosas?

Un ejemplo de donde yo estoy haciendo actualmente esto es dentro de mi ActivitiesController:

IActivitiesModel _activitiesModel; 

     public ActivitiesController(IActivitiesModel activitiesModel) 
     { 
      _activitiesModel = activitiesModel; 
     } 

y esto está ligado juntos en mi global.asax:

Bind<IActivitiesModel>().To<ActivitiesModel>(); 

¿Es esta la forma correcta de ir sobre hacer esto? ¿Debería crear una nueva interfaz para cada uno de mis modelos que esté instanciada dentro de un controlador?

Saludos para cualquier ayuda y codazos en la dirección correcta :-)

Respuesta

5

Depende de lo que esos modelos están haciendo. Si poseen acceso a los datos y métodos de manipulación, entonces deben abstraerse para debilitar el acoplamiento entre su controlador y la lógica de acceso a los datos y facilitar la prueba en la separación. Si simplemente son POCO y/o objetos de transferencia de datos, entonces no necesita abstraerlos.

Cuestiones relacionadas