2017-11-22 11 views
0

この例ではSudentRepositoryの目的は何ですか?なぜ私は1つ必要ですか?MVCのリポジトリパターン:コントローラコードの説明

public class StudentController : Controller 
{ 
    private IStudentRepository _repository; 

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

    } 

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

答えて

1

私が実際にあなたが得意とする特定の質問が含まれるように更新されました。 StudentRepositoryの目的は、永続化されたデータとのやりとりをカプセル化することです。コントローラは、データベース、フラットファイル、メモリなどに格納されているかどうかを知る必要はありません。

インターフェイスを介して注入する理由は、最終的にはそのリポジトリの複数の実装とインターフェイスすべての実装で基本的な機能を保証する契約にすぎません。これはコンストラクタインジェクション(依存性インジェクションの一種)と呼ばれます。