7

저는 Ninject를 사용하여 DI (Dependency Injection)를 시작하고 컨트롤러를 통해 내 모델을 좀 더 분리 해보려고합니다. 순간 각 모델에 대한 인터페이스를 만들어야합니까?

, 내 컨트롤러의 내부 내가 어떤 주어진 모델 등의 인스턴스를 만드는 오전 :이 방법으로 인스턴스화 봤는데 내 모델 각각에 대해

var activitiesModel = new ActivitiesModel(); 

를, I는 인터페이스를 추출한다 이것들을 위해 DI를 사용하여이 모든 것들을 묶어 라.

어디 현재이 일을 해요의 예는 내 ActivitiesController 내부 :

IActivitiesModel _activitiesModel; 

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

을이 내 Global.asax에 함께 묶여 :

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

이 올바른 방법인가 이러는거야? 컨트롤러 내부에서 인스턴스화 된 각 모델에 대해 새 인터페이스를 작성해야합니까?

어떤 도움 환호하고 올바른 방향으로 유도합니다은 :-)

답변

5

그것은 그 모델이 무엇을하는지에 따라 달라집니다. 데이터 액세스 및 조작 방법이있는 경우 컨트롤러와 데이터 액세스 논리 간의 결합을 약화시키고 분리에서의 테스트를 쉽게하기 위해 추상화되어야합니다. 단순히 POCO 및/또는 데이터 전송 객체 일 경우 추상화 할 필요가 없습니다.

관련 문제