Как лучше назвать класс реализующий бизнес-фукнционал (севрис? команда?)? Например, есть класс ClientCreator, который реализует логику создания в системе нового клиента. Этот класс внутри себя создаёт записи User и Client, сохраняет их в БД и триггерит события. Этот класс принимает все необходимые аргументы для работы через конструктор и имеет публичный метод execute, который и делает всю работу.
Работа с классом идёт по следующей схеме:
1. Инстанцируется экземпляр;
2. Экземпляр конфигурируется. Например, отмечаем doNotSendEmailNotification = false и даём ссылку на генератор паролей, чтобы генерить пароли для новых пользователей;
3. В кач-ве обязательного параметра - это исходные данные формы, на основе которых всё будет расчитываться и создаваться.
4. Вызываем метод execute(). Метод ничего не возвращает, но если есть ошибки, то выбрасывается исключение.
Как я понимаю, этот класс относиться к сервисному слою приложения. Как принято называть такие классы? ClientCreatorService? И есть какая-то концептуальная разница между такими сервисами, которые настраиваются в момент инстанцирования и, очевидно, могут работать только с 1 экземпляром формы (execute отработал и всё, хочешь другую форму обработать - создавай новый экземпляр), и сервисами, которые в execute могут принимать какие-то параметры (создал сервис, и в цикле вызываешь execute для нужной формы)?

21 Авг 2019 в 06:25
285 +1
0
Ответы
1

В данном случае, можно назвать данный класс ClientCreationService, чтобы указать, что он отвечает за создание клиентов в системе. Концептуально, сервисный класс в случае инстанцирования и конфигурирования перед выполнением работы будет работать с конкретными данными и выполнять определенную задачу. В случае, когда сервисный класс принимает параметры в методе execute, он может быть более общим и применяться для выполнения операций над различными данными или объектами. Это может быть полезно, когда требуется повторное использование логики с разными параметрами или для работы со списком объектов.

Таким образом, разница между сервисами, которые настраиваются перед выполнением и теми, которые принимают параметры в методе execute, заключается в их специфичности и общности задач выполнения. Каждый подход имеет свои преимущества и может быть применим в зависимости от конкретной задачи и требований к функционалу сервиса.

20 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир