Цель уровня служб

Я корректен в размышлении, что цель уровня служб включает следующее?

  • утончаясь из моделей предметной области (т.е. перемещение определенных функций как в кэшировании, инстанцировании)
  • сокращение зависимостей от моделей предметной области
  • Минимизация API
16
задан Ben 19 February 2010 в 10:11
поделиться

3 ответа

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

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

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

14
ответ дан 30 November 2019 в 16:41
поделиться

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

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

Если ваш дизайн ориентирован на предметную область, ответ Anthares верен.

18
ответ дан 30 November 2019 в 16:41
поделиться

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

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

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

5
ответ дан 30 November 2019 в 16:41
поделиться