Я уже некоторое время практикую DDD с четырьмя различными уровнями: домен, презентация, приложение и инфраструктура.Недавно я познакомил моего друга с концепцией DDD, и он подумал, что она привнесла ненужный уровень сложности (особенно в отношении интерфейсов и IoC).Обычно в этот момент я объясняю преимущества DDD, особенно его модульность.Все тяжелые и скрытые вещи находятся в Инфраструктуре, и если бы я хотел полностью изменить базовый метод доступа к данным, я мог бы сделать это, только прикоснувшись к хранилищу уровня инфраструктуры.
Аргумент моего другаявляется то, что он мог бы создать трехуровневое приложение таким же образом:
- Бизнес
- Данные
- Презентация
Он создастбизнес-модели (например, доменные модели) и хранилища в слое данных возвращают эти бизнес-модели.Затем он назовет бизнес-уровень, который называется уровнем данных.Я сказал ему, что проблема с этим подходом в том, что он не поддается проверке.Конечно, вы можете написать интеграционные тесты, но вы не можете написать настоящие модульные тесты.Можете ли вы увидеть какие-либо другие проблемы с его предложенным трехуровневым подходом (я знаю, что есть, потому что иначе DDD существует?).
РЕДАКТИРОВАТЬ: Он не использует IoC.Каждый слой в его примере зависит друг от друга.