Может ли управляемый доменом дизайн приложения иметь модели

Может ли прикладной уровень в DDD иметь модели?

Чтобы быть более явным, у меня есть credential объект в моей системе, который связан с процессом аутентификации, который находится за пределами моего уровня домена, так где этот объект будет? Я новичок в домене, управляемом дизайном.

1 ответ

Решение

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

Но я бы не назвал это "моделью", разве что в смысле "модель представления".

Без подробностей сложно сказать что-то более полезное, поэтому я попытаюсь ответить на вашу проблему интеграции на примере.

Пример приложения Вона Вернона

Взглянув на пример приложения Vernon, вы можете изолировать службу аутентификации от вашего приложения-потребителя. Для этого Vernon моделирует три автономных Java-приложения.

Теперь есть сервис IdentityAccess, обеспечивающий всю аутентификацию. Там вы можете создать Tenant Сущности. Тогда есть приложение Collaboration (форум и т. Д.), Которое использует свое собственное внутреннее представление Tenant,

Таким образом, клиентское приложение получает TenantId и создает свой собственный Tenant объекты, чтобы связать темы форума с арендатором. Tenants не изменяются и не сохраняются из этого приложения, только используются.

Привязка объектов домена к вещам вне его

Ваша точка зрения может быть еще проще. Если у тебя есть Credential Сущность (в вашем Домене) и некоторая логика аутентификации вне ее, заставляют "аутентификатор" реализовывать специализированный интерфейс Домена и вставлять его обратно в объекты Домена, если вам действительно это нужно. (Это подход Ports & Adapters: обе стороны могут указывать интерфейсы и ждать конкретных реализаций; другая сторона реализует интерфейс и внедряет объект обратно.)

Я предполагаю, что вам не обязательно иметь доступ из вашего домена к логике аутентификации, но нам нужно увидеть больше кода, чтобы судить об этом.

Vernon использует AuthenticationService внутри домена для обработки неверных данных для входа.

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