ну в реальности причин делать new не так много, и обычно это как-то связано логически бизнес логикой... мол... ты ж не будешь просто так создавать что-то...
Мне вот нравится пример - допустим у нас есть стандартная регистрация пользователя с верификацией email-а (потому что на email будут приходить важные вещи и нам важно что бы пользователь не ввел херню - ему же хуже).
В этом случае мы можем создать некий агрегат который будет хранить в себе неподтвержденный email (UnconfirmedEmail
какой, я так себе в нэйминг) и после подтверждения ты можешь использовать этот агрегат что бы сделать какого-нибудь Customer.
В этом случае вся валидация прекондишенов для создания Customer будет происходить в рамках UnconfirmedEmail и причин кастомеру ругаться на email не будет. Так же как и причин по которым ты где-то еще захочешь сделать какого-то другого кастомера с таким же набором ограничений на входящие данные.
Пример может так себе конечно, но смысл в этом. Скрыть информацию о отдельном этапе жизни данных от всей остальной системы. Кастомеру теперь об этом знать не надо. И всем кто работает с кастомером тоже...
для думающих людей это вполне катит, я согласен. Точнее даже для людей, которые пытаются разобраться в процессе
Ну и надо понмать, что new - опасная штука и что её надо встраивать в этот процесс весь
Хороший пример на самом деле