Існує велика різниця між шаром програми та шаром презентації від точки зору DDD.
Хоча DDD зосереджується на тому, як моделювати домен за допомогою будівельних блоків та понять DDD, таких як обмежені контексти, всюдисуща мова тощо, все одно важливо чітко визначити та розділити різні шари у вашій програмі.
Архітектура відіграє велику роль у впровадженні успішного додатку DDD. Відома архітектура, яка останнім часом придбала багато галасу, - це лукова архітектура:
У цій конструкції шар інтерфейсу / презентації та шар програми чітко розділені. Об'єднання двох разом вводить тісне з'єднання між двома шарами, які мають чіткі окремі проблеми та обов'язки.
Шар презентації повинен містити лише логіку презентації. Уникайте розумних інтерфейсів, які знають занадто багато. Це, головним чином, розміщує контролери та види MVC, крім CSS, JS, шаблонів, форм і всього, що стосується об'єктів відповіді та запиту.
Дії, видані через презентацію, делегуються на рівень програми за допомогою команд. Прикладний рівень містить логіку програми. Зазвичай він відображається у випадку використання. Він містить, ЩО система повинна зробити для задоволення випадку використання. Типова служба додатків попросить сховище повернути сукупність, а потім викликати дію на цьому агрегаті.
Погляньте на зразок проекту з IDDD Вон Вернона