использование DI для загрузки экземпляра репозитория при каждом запросе mvc

Я читаю наэта почта что они используют внедрение зависимостей для загрузки экземпляра репозитория при каждом запросе mvc.

Я не уверен, правильно ли я понимаю, но в настоящее время я использую в своем приложении MVC.UserRepository который реализуетIUserRepository интерфейс. Этот интерфейс вставляется в конструктор контроллера

public class UserController : Controller
{
   private IUserRepository repository;
   public UserController(IUserRepository rep)
   { repository = rep; }

   public UserController() : this(new UserRepository()) {}
}

но я не вижу никакой пользы от использования этого интерфейса (IUserRepository) Я мог бы использоватьUserRepository без интерфейса. Очевидно, кто-то умнее полагает, что это правильный подход (я нашел его в книге apress mvc4), и я хотел бы попросить кого-нибудь уточнить, почему этот подход лучше, чем использование репозитория без интерфейса.

Имея это в виду, я бы попросил кого-нибудь поделиться конкретными примерами или ссылками о том, как реализовать этот подход (использование внедрения зависимостей для загрузки экземпляра репозитория при каждом запросе mvc).

Ответы на вопрос(3)

Ваш ответ на вопрос