Я работал много с PHP. Но недавно я был отправлен на работе, которые используют Java. В PHP я раньше делал много объекта Singleton, но этот шаблон не имеет того же значения в Java, который это имеет в PHP. Таким образом, я хотел пойти для служебного класса (класс со статическим методом), но мой руководитель не любит этот вид классов и просит, чтобы я пошел для сервисного объекта. Таким образом, мое предположение было то, что объект службы является просто классом с конструктором, которые реализуют некоторые открытые методы... Действительно ли я прав?
Domain-Driven Design определяет сервис как:
СЕРВИС - это операция, предлагаемая как интерфейс, который стоит отдельно в модели, без инкапсуляции состояния... [p. 105]
Да, это класс с публичными методами, но в дополнение к этому он реализует интерфейс, который раскрывает эти методы. В своей основе сервис является интерфейсом - класс, который его реализует, является лишь деталью реализации.