此示例中SudentRepository
的目的是什么?我为什么需要一个?
public class StudentController : Controller
{
private IStudentRepository _repository;
public StudentController() : this(new StudentRepository())
{
}
public StudentController(IStudentRepository repository)
{
_repository = repository;
}
答案 0 :(得分:1)
我更新了实际包含一个我认为你会得到的具体问题。 StudentRepository
的目的是封装与持久数据的交互。 Controller不需要知道它是否存储在db,flat文件,内存等中。
您通过接口注入它的原因是因为您最终可能拥有该存储库的多个实现,并且该接口只是确保所有实现的基本功能的合同。如果您想了解更多内容,这称为构造函数注入(一种依赖注入)。