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

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

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

3 ответа

Решение

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

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

Однако в архитектурах и шаблонах разностных решений уровень обслуживания может иметь разное назначение.

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

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

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

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

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

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

Другие вопросы по тегам