7

Sono appena iniziato con Dependency Injection (DI) utilizzando Ninject e sto lavorando con i miei controller cercando di separarli un po 'di più dai miei modelli.Devo creare un'interfaccia per ciascun modello?

Al momento, all'interno dei miei controllori sto creando un'istanza di un dato modello di esempio:

var activitiesModel = new ActivitiesModel(); 

Per ciascuno dei miei modelli che ho Instantiating in questo modo, dovrei estrarre un'interfaccia per questi e poi usare DI per legare insieme queste cose?

Un esempio di dove sto attualmente facendo questo è dentro la mia ActivitiesController:

IActivitiesModel _activitiesModel; 

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

e questo è legato insieme a mio global.asax:

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

E 'questo il modo corretto di andare a fare questo? Dovrei creare una nuova interfaccia per ciascuno dei miei modelli che viene istanziata all'interno di un controller?

Applausi per qualsiasi aiuto e trilli nella giusta direzione :-)

risposta

5

Dipende da quello che quei modelli stanno facendo. Se possiedono metodi di accesso e manipolazione dei dati, dovrebbero essere astratti per indebolire l'accoppiamento tra il controller e la logica di accesso ai dati e facilitare la verifica in separazione. Se si tratta semplicemente di oggetti POCO e/o di trasferimento dati, non è necessario astrarli.

Problemi correlati