Основна причина цих меж - розділення проблем . Код, який має доступ до сховища даних, повинен турбуватися лише про доступ до сховища даних. Він не повинен нести відповідальність за примусове застосування правил над даними. Крім того, користувальницький інтерфейс повинен відповідати за оновлення елементів управління в інтерфейсі, отримання значень від введення користувача та переведення їх на те, що може використовувати доменний рівень, і більше нічого. Слід викликати операції, надані доменним шаром, для виконання будь-яких необхідних дій (наприклад, збереження цього файлу). Викликана веб-служба повинна відповідати за перетворення середовища передачі в те, що може використовувати доменний рівень, а потім викликає доменний рівень (більшість інструментів робить для вас багато цієї роботи).
Таке розмежування при правильному впровадженні може надати вам можливість змінювати частини коду, не зачіпаючи інших. Наприклад, можливо, потрібно змінити порядок сортування повернутої колекції об'єктів. Оскільки ви знаєте, що шар, відповідальний за маніпулювання даними (зазвичай шар бізнес-логіки), обробляє цей матеріал, ви можете легко визначити, де код потрібно змінити. Крім того, що не потрібно змінювати спосіб отримання даних із сховища даних або будь-якого з додатків, що використовують домен (інтерфейс користувача та веб-служба з мого прикладу вище).
Кінцева мета - зробити свій код максимально простим у обслуговуванні.
Як бічна примітка, деякі речі не можуть бути зафіксовані в конкретному шарі домену (наприклад, реєстрація, перевірка та авторизація). Ці елементи зазвичай називають наскрізними проблемами, і в деяких випадках їх можна розглядати як шар, який стоїть сам по собі, що всі інші шари можуть бачити та використовувати.
Особисто я вважаю, що шаруватий підхід застарів, і що сервісний підхід є кращим. У вас все ще є чітка лінія в піску, хто робить що, але це не змушує вас бути настільки ієрархічними. Наприклад, послуга замовлення на купівлю, послуга виставлення рахунків та послуга доставки, з точки зору програми всі ці служби представляють ваш домен, і відкладене вище відповідальність я досі діє в цьому контексті, вона щойно була змінена що ваш домен існує в декількох місцях, додатково використовуючи концепцію розділення проблем.