Назначение служебного уровня

Правильно ли я полагаю, что цель уровня сервиса включает следующее?

  • истощение моделей домена (т.е. перемещение определенных функций, таких как кэширование, создание экземпляров)
  • сокращение зависимостей от моделей доменов
  • Минимизация API

Ответы

Ответ 1

В терминах управляемого доменом дизайна, например, уровень службы домена используется для операций, которые не могут быть определены в контексте объектов домена. Например, если у вас есть объект CreditCard, подходящей операцией на вашем уровне обслуживания будет выдача новой кредитной карты.

В более крупном приложении используется модель Anemic Domain Models, где объекты домена используются только как контейнеры данных, а вся бизнес-логика находится на уровне обслуживания домена (иногда это называется анти-шаблоном, но может быть очень полезным в большом решении, с добавлением другого слоя абстракции).

В разностных решениях архитектуры и шаблоны сервисный уровень может иметь разную цель.

Ответ 2

Традиционно (когда не используется Domain Driven Design) уровень сервиса или "бизнес-уровень", как его еще называют, - это код, в котором вы кодируете всю бизнес-логику для своего приложения. Так, например, в приложении, которое занимается выдачей банковских кредитов, уровень обслуживания - это место, где идет код, который определяет, следует ли предоставлять определенный кредит. Очевидно, что на уровне обслуживания потребуется некоторая информация о заявителе займа, чтобы иметь возможность принять решение о ее доверии. Чтобы получить эту информацию, бизнес-уровень вызывает слой "данные" или "репозиторий", который занимается извлечением и хранением информации в базе данных.

Уровень сервиса не затрагивает такие вопросы, как сохранение или другие инфраструктурные проблемы.

Если ваш дизайн зависит от домена, ответ anthares верен.

Ответ 3

Уровень обслуживания, как следует из названия, предоставляет службы, которые не являются непосредственной ответственностью любого другого объекта домена.

Уровень обслуживания также помогает в развязывании обязанностей. Уровень обслуживания формирует среднюю часть между уровнем базы данных/уровня персистентности и уровнем Client/UI/Web.

Правильное проектирование уровня обслуживания позволяет использовать его с любого клиента, будь то веб-клиент или веб-служба (SOA) или мобильное устройство.