Каков класс обслуживания в программировании?

Я всегда вижу некоторые классы, которые называются "ClassNameService", ну и в чем разница в логике? Какова цель этих классов обслуживания?

Ответ 1

Вообще говоря, может существовать иерархия объектов домена, которые контролируются службами. Если эти объекты домена являются только заполнителями данных без поведения, это не относится к объектно-ориентированному программированию.

Проверьте следующее: http://www.martinfowler.com/bliki/AnemicDomainModel.html

Чаще всего, в ООП группа доменных объектов имеет поведение, взаимодействие форм бизнес-логики и эта логика инкапсулируется Сервис. Такие службы stateful, причем их состояние состоит из этих объектов домена. Услуги также могут быть безстоящими и предлагают самостоятельную функциональность, подумайте о очень простом API калькулятора.

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

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

Для приложений Spring у вас есть аннотация Spring: @Service http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/stereotype/Service.html