Я просто начинаю с использованием Внедрения зависимости (DI) Ninject и работаю через мои контроллеры, надеющиеся отделять их из моих моделей немного больше.
В данный момент в моих контроллерах я создаю экземпляр некоторой данной модели, например:
var activitiesModel = new ActivitiesModel();
Для каждой из моих моделей, которых я инстанцировал таким образом, я должен извлечь интерфейс для них и затем использовать DI для связывания этих вещей?
Пример того, где я в настоящее время делаю это, в моем ActivitiesController:
IActivitiesModel _activitiesModel;
public ActivitiesController(IActivitiesModel activitiesModel)
{
_activitiesModel = activitiesModel;
}
и это связано в моем global.asax:
Bind<IActivitiesModel>().To<ActivitiesModel>();
Действительно ли это - корректный способ пойти о выполнении этого? Я должен создавать новый интерфейс для каждой из моих моделей, которая инстанцируют в контроллере?
Аплодисменты для любой справки и пошаговых перемещений в правильном направлении :-)
Это зависит от того, что делают эти модели. Если они обладают методами доступа к данным и управления ими, их следует абстрагировать, чтобы ослабить связь между вашим контроллером и логикой доступа к данным и облегчить тестирование по отдельности. Если это просто объекты POCO и / или передачи данных, вам не нужно их абстрагировать.