2017-01-29 8 views
0

Я начинаю в DDD и я столкнулся с этим изображением:Когда я выбираю использовать один из следующих сценариев?

DDD Architecture

Я хотел бы знать, когда я выбираю использовать один из следующих сценариев:

1º - UI -> Применение -> Домен -> Инфра

2º - пользовательский интерфейс -> Применение -> Инфра

3о - пользовательский интерфейс -> Домен

4º - UI -> Infra

Если кто-нибудь может мне помочь, спасибо вам огромное.

+0

Вам нужен ответ, специфичный для C#? –

+0

@WilsonSantos Это образец слоистой архитектуры из оригинальной книги DDD. В наши дни он менее популярен. Более новые альтернативы см. В разделе «Архитектура гексагональной архитектуры и лука». Вопросы, которые вы задаете, вероятно, не имеют смысла в типичной настройке DDD 2017. – guillaume31

+0

@ guillaume31 На практике многоуровневая архитектура с применением DIP в значительной степени похожа на гексагональную архитектуру. Вы можете просто заменить «инфраструктуру» на «порт и адаптеры», и реализация такая же, нет? – plalx

ответ

2

Из изображения видно, что вы имеете в виду старое Многоуровневая архитектура, в ее расслабленной форме (верхние слои могут зависеть только от нижних слоев, на любом нижнем уровне).

Я дам вам от языка примеры для каждого сценария:

1º - UI -> приложения -> Домен -> Инфракрасная

Это наиболее распространенный сценарий: пользователь отправить форму, чтобы создать новый объект от UI; то UI собирает данные из формы и вызывает службу Application, которая создает новый объект сущности (с новым оператором или с использованием фабрики), а конструктор объекта (который находится в слое) инициализирует объект; то служба Application использует репозитории из Infrastructure (например, репозитория SQL), чтобы сохранить вновь созданный объект.

2º - UI -> приложения -> Инфракрасная

Это может быть сценарий, когда UI проверяет, является ли текущий пользователь имеет право на доступ к ресурсу с помощью Application службы, которые читают какой-либо файл с диска с использованием Infrastructure; безопасность - Application уровень ответственности.

3о - UI -> Домен

UI вызывает Domain службу для выполнения какой-то расчет; например, расчет НДС по некоторой цене продукта для того, чтобы показать пользователь

4º - UI -> Инфру

UI хочет показать пользователю администрировать состояние соединения с базой данных (которая находится в слой Infrastructure)

+0

Спасибо за ответ. –

Смежные вопросы