Разница между сервисом и классом

276
20 августа 2021, 01:00

С коллегой возникла дискуссия что считать сервисом, а что классом. После непродолжительной размышления пришли к выводу, что скорее всего сервис - это класс, который имеет зависимости и служит для повторяющихся задач, но нам самим такая формулировка не нравится, так как во многом подходит и обычным статическим классам-помощникам.

В чём принципиальная разница между сервисом и классом? По каким признакам можно сказать, что это уже не класс, а сервис? По каким признакам можно сказать, что это не сервис, а класс?

Answer 1

Обычно сервисом называют класс, который используется на всех уровнях приложения. Например сервис логирования, сервис аутентификации. Еще сервисом могут называть фасад какой то функциональности, типа сервис печати, сервис отправки писем. Сервисом могут называть запущенный отдельно код со своим ограниченным контекстом, типа Discovery Service, или сервис обмена валют.

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

Сервис, как я думаю, широкое понятие. А класс - это весьма конкретное. Вы всегда можете понять, является ли обсуждаемый предмет классом. Но не всегда ясно, является ли он сервисом. То есть однозначного ответа нет.

READ ALSO
Как реализовать связь между сущностями?

Как реализовать связь между сущностями?

Есть картинки и компанииКаждая компания может иметь много картинок

237
массовая обработка форм php

массовая обработка форм php

Мне нужно, что бы на странице с товарами, которые грузятся и базы данных, была возможность изменять эти столбцы товаров прямо на странице...

168
Как получить время нажатия кнопки?

Как получить время нажатия кнопки?

есть страница, на которой есть date(

182
Вывести популярные теги php mysql

Вывести популярные теги php mysql

есть таблица тегов:

157