Комментарии 6
А можно увидеть диаграмму последовательности вызовов "как было" и "как стало"? А что из обрывков кода на скрине категорически неясно что же поменялось.
Последовательность вызовов, если мы говорим о "Controller -> Service -> Repository" не претерпела кардинальных изменений. Основные изменения были сделаны в архитектуре проекта, которые описываются в части 2 данного цикла статей, а так же изменения обязанности классов и их конструирования (пример с валидацией). Данная часть отражает наложение тактических шаблонов DDD на наш код и описывает ответственность за работу с ошибками в каждом контексте.
А в чем плюс приватного конструктора и фабричного метода, вместо просто конструктора с проверками внутри?
Ага, понял, возможность вернуть неуспешный результат?
Ага, понял, возможность вернуть неуспешный результат?
Да, это один из плюсов. Достаточно подробно плюсы этого подхода описываются в книге "Effective Java" Блоха.
На вскидку могу вспомнить:
Возможность описания в контракте негативного результата
Возможность детального и понятного наименования метода
Возможность соблюдения инвариантов
Гексагональная архитектура и DDD на опыте интернет-магазина Спортмастер. Как дела с кодом?