7

Ich beginne gerade mit Dependency Injection (DI) mit Ninject und arbeite durch meine Controller, um sie von meinen Modellen ein wenig mehr zu entkoppeln.Soll ich für jedes Modell eine Schnittstelle erstellen?

Im Moment Innenseite meiner Controller ich eine Instanz einer bestimmten Modells zB erschaffe:

var activitiesModel = new ActivitiesModel(); 

Für jedes meiner Modelle, die ich auf diese Weise instanziieren habe, sollte ich extrahieren eine Schnittstelle für diese und dann DI verwenden, um diese Dinge zusammen zu binden?

Ein Beispiel, wo bin ich zur Zeit dies zu tun ist in meinem ActivitiesController:

IActivitiesModel _activitiesModel; 

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

und diese zusammen in meinem global.asax gebunden ist:

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

Ist dies der richtige Weg zu gehst du das machen? Soll ich für jedes meiner Modelle eine neue Schnittstelle erstellen, die in einem Controller instanziiert wird?

Beifall für jede Hilfe und stupst in der richtigen Richtung :-)

Antwort

5

Es hängt davon ab, was diese Modelle tun. Wenn sie Datenzugriffs- und -manipulationsmethoden besitzen, sollten sie abstrahiert werden, um die Kopplung zwischen Ihrem Controller und der Datenzugriffslogik zu schwächen und das Testen in der Trennung zu erleichtern. Wenn es sich nur um POCO- und/oder Datenübertragungsobjekte handelt, müssen Sie diese nicht abstrahieren.

Verwandte Themen