Какой смысл для IRepository? - PullRequest
       6

Какой смысл для IRepository?

2 голосов
/ 01 февраля 2010

Какой в ​​этом смысл? Он просто добавляет больше кода, который вам нужно написать, который на самом деле ничего не делает с приложением, которое он не мог сделать до добавления IRepository.

Ответы [ 4 ]

5 голосов
/ 01 февраля 2010

Пара причин:

  1. Тестирование. Вы можете смоделировать свой интерфейс репозитория и передать его всем методам, которые зависят от вашего репозитория (который будет практически у любого контроллера, обращающегося к уровню данных). Это, в свою очередь, позволяет вам проводить правильные испытания, отделенные от реальной базы данных или источника данных.

  2. Наследование. Вы можете передавать интерфейсы репозитория вместо типов классов, что позволяет вам иметь гетерогенные источники данных на различных уровнях дерева наследования, но при этом гарантируется, что такая же функциональность существует. Это в значительной степени тот же аргумент, что и «абстрактные классы против интерфейсов» в любое время, но он также присутствует здесь.

1 голос
/ 01 февраля 2010

Я думаю, что за это проголосуют (как обычно, за мои нереальные ответы), но в чем смысл MVC? Разве мы не можем просто написать код прямо на странице, старый добрый ASP-стиль? Черт возьми, мы можем даже сделать помощники Response.Write () + Html, в этих утечках нет необходимости

Вам нужно перестать думать в терминах "Х выполняет работу". Есть больше вещей о программах, кроме "это работает". Другие ответы перечислили несколько из них, поэтому я не буду повторяться.

1 голос
/ 01 февраля 2010

Основная идея шаблона Repository заключается в том, что вы получаете способ запрашивать и сохранять объекты без необходимости знать, как они хранятся.

Это полезно, поскольку вы можете отделить свой пользовательский интерфейс и модель потока от того, как объекты хранятся, кэшируются и извлекаются. Это дает большую возможность независимо тестировать уровни пользовательского интерфейса и нижние уровни, работать с ними независимо и обслуживать их независимо.

Большинство зрелых сред объектно-реляционного сопоставления (ORM) позволяют вам делать это.

0 голосов
/ 01 февраля 2010

Это для тестирования, когда-нибудь слышали о насмешках?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...