Это хорошая идея для проверки хранилищ в DAO? - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть веб-приложение.Структура: контроллер, который принимает объект, и DAO, который сохраняет объект и выполняет некоторые другие действия.Является ли это хорошей идеей проверять проверки без сохранения состояния (например, размер имени) в контроллере и проверки состояния (дублирование электронной почты в БД, например) в DAO.Есть ли хорошие практики для этого?Можете ли вы посоветовать некоторые ресурсы или книгу, чтобы получить его?

1 Ответ

1 голос
/ 27 апреля 2019

Это хорошая идея для проверок хранилищ в DAO?

Нет, это не так.DAO, как следует из названия, следует использовать только с целью хранения / извлечения объектов из какого-либо источника данных.Большинство проверок являются своего рода бизнес-логикой и, следовательно, не должны принадлежать DAO.

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

Что касается вашего примера проверки электронной почты, да, вы можете поместить эту логику в свой DAO.Но в качестве хорошей практики всегда называйте свои методы DAO, чтобы они отвечали за хранение / извлечение объектов, например: findEmployeeByEmail(String email).

Короче говоря, использование логики ведения бизнеса / проверки в DAO иногда приемлемо, но попробуйтесделать его минимальным.

...