Может ли управляемый доменом дизайн приложения иметь модели
Может ли прикладной уровень в DDD иметь модели?
Чтобы быть более явным, у меня есть credential
объект в моей системе, который связан с процессом аутентификации, который находится за пределами моего уровня домена, так где этот объект будет? Я новичок в домене, управляемом дизайном.
1 ответ
Уровень приложений может использовать свои собственные представления данных. Если вы подключите его к пользовательскому интерфейсу, прикладному уровню придется преобразовывать объекты домена для просмотра данных.
Но я бы не назвал это "моделью", разве что в смысле "модель представления".
Без подробностей сложно сказать что-то более полезное, поэтому я попытаюсь ответить на вашу проблему интеграции на примере.
Пример приложения Вона Вернона
Взглянув на пример приложения Vernon, вы можете изолировать службу аутентификации от вашего приложения-потребителя. Для этого Vernon моделирует три автономных Java-приложения.
Теперь есть сервис IdentityAccess, обеспечивающий всю аутентификацию. Там вы можете создать Tenant
Сущности. Тогда есть приложение Collaboration (форум и т. Д.), Которое использует свое собственное внутреннее представление Tenant
,
Таким образом, клиентское приложение получает TenantId
и создает свой собственный Tenant
объекты, чтобы связать темы форума с арендатором. Tenant
s не изменяются и не сохраняются из этого приложения, только используются.
Привязка объектов домена к вещам вне его
Ваша точка зрения может быть еще проще. Если у тебя есть Credential
Сущность (в вашем Домене) и некоторая логика аутентификации вне ее, заставляют "аутентификатор" реализовывать специализированный интерфейс Домена и вставлять его обратно в объекты Домена, если вам действительно это нужно. (Это подход Ports & Adapters: обе стороны могут указывать интерфейсы и ждать конкретных реализаций; другая сторона реализует интерфейс и внедряет объект обратно.)
Я предполагаю, что вам не обязательно иметь доступ из вашего домена к логике аутентификации, но нам нужно увидеть больше кода, чтобы судить об этом.
Vernon использует AuthenticationService внутри домена для обработки неверных данных для входа.