7

Je ne fais que commencer avec Dependency Injection (DI) en utilisant Ninject et je travaille avec mes contrôleurs qui cherchent à les découpler un peu plus de mes modèles.Devrais-je créer une interface pour chaque modèle?

Au moment, à l'intérieur de mes contrôleurs je crée une instance d'un certain modèle donné par exemple:

var activitiesModel = new ActivitiesModel(); 

Pour chacun de mes modèles que j'ai l'instanciation de cette façon, dois-je extraire une interface pour ceux-ci, puis utiliser DI pour lier ces choses ensemble?

Un exemple de là où je suis en train de faire cela est dans mon ActivitiesController:

IActivitiesModel _activitiesModel; 

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

et cela est lié en mon global.asax:

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

Est-ce la bonne façon va faire ça? Devrais-je créer une nouvelle interface pour chacun de mes modèles qui est instanciée à l'intérieur d'un contrôleur?

Vive toute aide et coups de pouce dans la bonne direction :-)

Répondre

5

Cela dépend de ce que ces modèles font. Si elles possèdent des méthodes d'accès et de manipulation des données, elles doivent être abstraites pour affaiblir le couplage entre votre contrôleur et la logique d'accès aux données et faciliter le test lors de la séparation. S'il s'agit simplement d'objets POCO et/ou de transfert de données, vous n'avez pas besoin de les extraire.