powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Слой Service и Component
4 сообщений из 4, страница 1 из 1
Слой Service и Component
    #39142976
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Раньше слой Service вообще не делал и БЛ была где только угодно. Получалось не удобно тестировать, повторение да и не понятно что делает приложение.

С другой стороны если сейчас всю БЛ перенести в слой Service то будет в некоторых случаях увеличение кода. Допустим есть класс LazyDataModel в Primefaces который обращается к БД за составным запросом. Если сделать этот класс как jsf бин то придется в слоях Service и Repository делать дублирующие методы получения данных. Наследование, понимаю но все же.

С другой стороны можно сделать LazyDataModel компонентом но он будет напрямую обращаться даже не к Repository а к EntityManager.

Вопрос допускается ли делать такие компаненты и как вообще лучше поступить в таких случаях.

Всех с Рождеством и Новым Годом!
...
Рейтинг: 0 / 0
Слой Service и Component
    #39142988
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас нет четкого понимания зачем нужен каждый из паттернов. Отсюда и вопросы куда их приткнуть.
Service это Transaction Script. Это бизнес-логика приложения, более относящаяся к бизнес-процессу, а не к поведению какой-то сущности. Дернуть, там, переложить сюда, принять решение и т.д. Есть у вас сложный бизнес-процесс?

Repository инкапсулирует сложные запросы.
Ваша фраза "который обращается к БД за составным запросом" смущает. К БД обращаются за данными, а не за запросами.
Есть сложные запросы? Фигачим их в репозиторий. Нет? Пользуем EM и не паримся.

Что за дублирующие методы и куда тут наследование, на пальцах совершенно не понятно.

Допускается делать всё что помогает организовать код и достичь требований SOLID и GRASP. Каждый паттерн это пример решения определенной проблемы. Это совершено не значит что нужно пихать его в каждый проект.
...
Рейтинг: 0 / 0
Слой Service и Component
    #39143058
z3r9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, просто у меня такое представление что в слое Service должны быть все действия. То есть регистрация пользователя, удаление пользователя, подтверждение регистрации, получение данных пользователя по ID.
Я правильно понял что если процесс не сложный то не нужно его в слой сервис пихать. Например "получение данных пользователя по ID" можно брать напрямую с репозитория в JSF бине?
...
Рейтинг: 0 / 0
Слой Service и Component
    #39143060
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z3r9Blazkowicz, просто у меня такое представление что в слое Service должны быть все действия. То есть регистрация пользователя, удаление пользователя, подтверждение регистрации, получение данных пользователя по ID.
Я правильно понял что если процесс не сложный то не нужно его в слой сервис пихать. Например "получение данных пользователя по ID" можно брать напрямую с репозитория в JSF бине?

Хороший вопрос. Потому что я упустил из вида ещё и вторую роль Service. Он ещё и представляет из себя бизнес-фасад, на который можно навесить массу полезной функциональности
- Декларативную секурити (аннотации с ролями, которым доступно действие)
- Аудит (логирование действий пользователя)
- Поддержку других протоколов доступа к функциональности (SOAP, REST сервисы, любой другой ремотинг или интеграция)

Если у вас всё завернуто на сервисы, то вышеперечисленное не составляет вообще никакой проблемы. Если же существуют, как сервисы, так и прямые обращения JSF в ORM, то такие прямые обращения придется либо дублировать, либо всё равно выносить в сервис.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Слой Service и Component
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]