вызов службы vs dao из другой службы
У меня есть сущности пользователя и роли и сервис, слои DAO для них. Мне нужен список ролей от UserService.
Какой слой я должен использовать из UserService? метод списка вызовов RoleService vs RoleDAO ? Какой из них широко используется и почему?
2 ответа:
Обычно уровень DAO находится рядом с базой данных, уровень сервиса инкапсулирует вашу бизнес-логику, выполняя любые транзакции или другие вещи, а не просто вызывая DAO.
Служба, вызывающая другую службу, более распространена, потому что
Ваш RoleService может иметь некоторый бизнес-код оцененный, вы можете извлечь выгоду из транзакций или передачи сообщений через JMS или вы можете иметь некоторую безопасность на методах обслуживания в будущем. Так что разделение проблем-это хорошая практика.
Легко издеваться над сервисами и тестировать (это можно утверждать, даже DAO можно протестировать), но разделение бизнес-логики является хорошим способом с помощью интерфейсов уровня сервиса.
Но если у вас нет никакой бизнес-логики на уровне сервиса, вы можете избежать избыточного кода, просто используя DAO (но в будущем у вас будет долг кода для рефакторинга, если вы думаете о бизнесе на уровне сервиса )