@tekord
Веб-разработчик

Как лучше назвать класс реализующий бизнес-фукнционал (севрис? команда?)?

Например, есть класс ClientCreator, который реализует логику создания в системе нового клиента. Этот класс внутри себя создаёт записи User и Client, сохраняет их в БД и триггерит события. Этот класс принимает все необходимые аргументы для работы через конструктор и имеет публичный метод execute, который и делает всю работу.

Работа с классом идёт по следующей схеме:

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

Как я понимаю, этот класс относиться к сервисному слою приложения. Как принято называть такие классы? ClientCreatorService? И есть какая-то концептуальная разница между такими сервисами, которые настраиваются в момент инстанцирования и, очевидно, могут работать только с 1 экземпляром формы (execute отработал и всё, хочешь другую форму обработать - создавай новый экземпляр), и сервисами, которые в execute могут принимать какие-то параметры (создал сервис, и в цикле вызываешь execute для нужной формы)?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
@cheevauva
То что ты описал является Командой. Принципиальная разница, видна из твоего же вопроса, передавая через конструктор, ты можешь сохранить состояние - но при этом отложить выполнение команды, когда как во втором случае ты сразу передал и сразу сделал дело. На основе первого варианта, возможно реализовать шину команд без всяких траблов. Во втором случае, если данные в метод execute будут передаваться разные, шину команд будет реализовать сложнее, возможно, но сложнее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы