В моем приложении есть следующая архитектура.
Клиент (GWT) <- звонки -> Сервлет <- звонки -> Служба <- звонки -> Дао
Я хочу сделать эту архитектуру проще для изменений.
Например: когда я хочу вернуть вставленный идентификатор объекта из слоя Dao, потому что он мне нужен в клиенте, я должен обновить также сервис и слой сервлета. Так что для этого небольшого изменения я должен обновить все 3 слоя (3 класса и 3 интерфейса) вносит изменения в 6 местах.
Я понимаю, зачем мне слой Дао.
Я также понимаю, почему мне нужен уровень обслуживания.
Я не понимаю, почему сервисный уровень также не может быть сервлетом. На данный момент все мои сервлеты перенаправляют запрос на сервисный уровень.
Статья в Википедии о сервлетах Java гласит:
Сервлеты чаще всего используются для
1 обработка или сохранение данных, которые были отправлены из HTML-формы
2 предоставляют динамическое содержимое, например результаты запроса к базе данных
3 управлять информацией о состоянии, которой нет в HTTP-протоколе без сохранения состояния
1 и 2 - это просто вызовы базы данных, которые я делаю на своем дао-уровне, а сервисный уровень делает возможной дополнительную бизнес-логику.
3 В настоящее время я не работаю с сессиями. У меня пока нет логина, и я просто играю со своей архитектурой, но я думаю, что сервисный уровень мог бы справиться и с этим.
Я хочу знать, почему и за это изменение архитектуры:
плюсы:
- Обновление на один слой меньше, если произойдет изменение.
против
- Уровень обслуживания становится более сложным.
Спасибо за ваши ответы.