2017-11-22 1 views
0

이 예제에서 SudentRepository의 목적은 무엇입니까? 왜 내가 필요한거야?MVC의 저장소 패턴 : 컨트롤러 코드 설명

public class StudentController : Controller 
{ 
    private IStudentRepository _repository; 

    public StudentController() : this(new StudentRepository()) 
    { 

    } 

    public StudentController(IStudentRepository repository) 
    { 
     _repository = repository; 
    } 

답변

1

내가 생각한 구체적인 질문이 실제로 포함되도록 업데이트되었습니다. StudentRepository의 목적은 지속 된 데이터와의 상호 작용을 캡슐화하는 것입니다. 컨트롤러는 DB, 플랫 파일, 메모리 등에 저장되었는지 알 필요가 없습니다.

인터페이스를 통해 주입하는 이유는 결국 저장소의 여러 구현을 가질 수 있기 때문입니다. 인터페이스 모든 구현에서 기본 기능을 보장하기위한 계약 일뿐입니다. 더 많은 것을 배우고 싶다면 이것을 컨스트럭터 인젝션 (dependency injection) 유형이라고 부릅니다.