Лучшее объяснение, которое я до сих пор читал, это объяснение Шаблоны, принципы и практики доменного проектирования , опубликованное Wrox. Изображение ниже напоминает основную идею.
Все зависимости указывают внутрь, поэтому модель предметной области не зависит ни от чего и ничего не знает. Здесь все чисто и может сосредоточиться на важном языке домена.
Уровень приложений (содержащий службы приложений) предоставляет API вариантов использования и координирует запросы с соответствующими службами домена. Следовательно, код в службах приложений является процедурным, в то время как код в модели предметной области обычно намного богаче. То есть, если домен достаточно сложен, чтобы гарантировать это.
Но я отступлю, чтобы ответить на ваш вопрос, прикладной уровень предоставляет интерфейсы для реализации инфраструктуры (например, шаблон репозитория). Это также прикладной уровень, который знает, как запрашивать данные (с помощью этого интерфейса) и фильтровать их по роли.
Модель предметной области должна получать только отфильтрованную коллекцию , а фокусируется только на одной вещи , обрабатывающей данные.
Для полноты DDD допускает множество архитектур, если у домена нет зависимостей. Хотя мне проще всего набрать asp, если подумать об этом