Альтернативы шаблону хранилища? - PullRequest
9 голосов
/ 12 февраля 2011

Люди кричали на меня, что я должен всегда использовать шаблон репозитория, который я делал довольно давно ... Теперь мне интересно, есть ли достойные альтернативы этому шаблонувообще?

1 Ответ

3 голосов
/ 12 февраля 2011

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

Репозиторий обеспечивает стандартный интерфейс в вашей базе данных, а DAO предоставляет стандартные запросы, поэтому они так хорошо сочетаются; DAO перенаправляет конкретные вызовы в хранилище. Конечно, вы можете не использовать репозиторий в вашей DAO. Вы можете открыть соединение с вашей БД и выполнить запросы напрямую или использовать шлюз табличных данных, но я думаю, что причина, по которой большинство людей предпочитают репозиторий, заключается в том, что он немного чище, чем эти два варианта, хотя они не должны кричать на Вы:)

http://en.wikipedia.org/wiki/Data_access_object

В компьютерном программном обеспечении доступ к данным объект (DAO) является объектом, который обеспечивает абстрактный интерфейс для некоторых тип базы данных или постоянство механизм, обеспечивающий некоторые конкретные операции без раскрытия деталей база данных. Это обеспечивает отображение от вызовов приложений до персистентный слой. Это изоляция разделяет озабоченность тем, какие данные обращается к потребностям приложения, в условия предметно-ориентированных объектов и типы данных (открытый интерфейс DAO), и как эти потребности могут быть удовлетворены конкретной СУБД, схема базы данных и т. д. ( реализация DAO). это шаблон дизайна одинаково применим для большинства языков программирования, большинство типы программного обеспечения с постоянством потребности и большинство типов баз данных, но это традиционно связано с Приложения Java EE и с реляционные базы данных доступны через JDBC API из-за его происхождения в Sun Лучшая практика Microsystems руководящие указания [1] («Базовые шаблоны J2EE») для этой платформы.

...