Должен ли я создать интерфейс для каждой модели? - PullRequest
7 голосов
/ 28 мая 2010

Я только начинаю с Dependency Injection (DI) с использованием Ninject и работаю через мои контроллеры, пытаясь отделить их от моих моделей немного больше.

На данный момент внутри моих контроллеров я создаю экземпляр некоторой заданной модели, например:

var activitiesModel = new ActivitiesModel();

Для каждой из моих моделей, которые я таким образом создавал, должен ли я извлечь интерфейс для них, а затем использовать DI, чтобы связать эти вещи вместе?

Пример того, где я в данный момент делаю это, внутри моего ActivityController:

IActivitiesModel _activitiesModel;

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

и это связано в моем global.asax:

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

Это правильный способ сделать это? Должен ли я создавать новый интерфейс для каждой из моих моделей, который создается внутри контроллера?

Приветствует любую помощь и подталкивает в правильном направлении: -)

1 Ответ

5 голосов
/ 28 мая 2010

Это зависит от того, что делают эти модели. Если они обладают методами доступа к данным и манипулирования ими, их следует абстрагировать, чтобы ослабить связь между вашим контроллером и логикой доступа к данным и упростить тестирование по отдельности. Если они просто POCO и / или объекты передачи данных, вам не нужно их абстрагировать.

...