Правильно ли я полагаю, что цель уровня сервиса включает следующее?
- истощение моделей домена (т.е. перемещение определенных функций, таких как кэширование, создание экземпляров)
- сокращение зависимостей от моделей доменов
- Минимизация API
Правильно ли я полагаю, что цель уровня сервиса включает следующее?
В терминах управляемого доменом дизайна, например, уровень службы домена используется для операций, которые не могут быть определены в контексте объектов домена. Например, если у вас есть объект CreditCard, подходящей операцией на вашем уровне обслуживания будет выдача новой кредитной карты.
В более крупном приложении используется модель Anemic Domain Models, где объекты домена используются только как контейнеры данных, а вся бизнес-логика находится на уровне обслуживания домена (иногда это называется анти-шаблоном, но может быть очень полезным в большом решении, с добавлением другого слоя абстракции).
В разностных решениях архитектуры и шаблоны сервисный уровень может иметь разную цель.
Традиционно (когда не используется Domain Driven Design) уровень сервиса или "бизнес-уровень", как его еще называют, - это код, в котором вы кодируете всю бизнес-логику для своего приложения. Так, например, в приложении, которое занимается выдачей банковских кредитов, уровень обслуживания - это место, где идет код, который определяет, следует ли предоставлять определенный кредит. Очевидно, что на уровне обслуживания потребуется некоторая информация о заявителе займа, чтобы иметь возможность принять решение о ее доверии. Чтобы получить эту информацию, бизнес-уровень вызывает слой "данные" или "репозиторий", который занимается извлечением и хранением информации в базе данных.
Уровень сервиса не затрагивает такие вопросы, как сохранение или другие инфраструктурные проблемы.
Если ваш дизайн зависит от домена, ответ anthares верен.
Уровень обслуживания, как следует из названия, предоставляет службы, которые не являются непосредственной ответственностью любого другого объекта домена.
Уровень обслуживания также помогает в развязывании обязанностей. Уровень обслуживания формирует среднюю часть между уровнем базы данных/уровня персистентности и уровнем Client/UI/Web.
Правильное проектирование уровня обслуживания позволяет использовать его с любого клиента, будь то веб-клиент или веб-служба (SOA) или мобильное устройство.