@Biaci_Anj

Нормально ли вызывать из Сервлета DAO и Service одновременно?

Пишу сервлетный проект, у меня сделано так, если методу нужно простое действие с БД -> вызывается ДАО.
Если нужно что-то серьезное ( сохранить фото, например ) -> сервис.
При этом сервис одной сущности вообще пустой, там ничего нет.

Нормально ли это? Или мне обязательно между сервлетом и дао делать прокладку в виде сервиса, которая просто делегирует все дела дао?
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
xez
@xez Куратор тега Java
TL Junior Roo
Расскажу из личного опыта:
Мне всегда хочется, чтобы модель, которая используется в БД, и модель, которая используется в контроллере, были одной и той же моделью.
Все просто же: пришёл запрос в контроллер - сохрани в бд; нужно что-то из бд - сделай селект и отправь в контроллер.
Но никогда, ни разу это не было хорошей идеей.

Начнём с того, что как только появляется хоть какая-то вложенность объектов, никто в здравом уме не будет в контроллере передавать эти объекты, ограничиваясь ссылками на них, в лучшем случае (используя их id); закончим вопросами безопасности и консистентности данных, которые сразу, мимо валидации и какого-то сервиса отправляются в бд.

Отвечаю на ваш вопрос:
1. Всегда используйте сервис. Умение сохранять объекты в бд у контроллера противоречит принципу solid
2. Используйте луковую архитектуру. Доменная модель не должна ничего знать о внешних интеграциях.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы