MiksIr
miksir@home:~$
"Как" отправить - одно. "Что" отправить - другое. DTO отвечает на вопрос "что отправить". И это "что" - данные, которые нужно отправить так, что бы их потом можно было восстановить.А HTTP-запрос тоже DTO должен отправлять? Или в AMQP-очередь себя добавлять?
Так у тебя в голове DTO это что-то сродни модели? Так бы и сказал, а то тратишь наше время.А модель может знать, как записать себя в MySQL, PostgreSQL или MongoDB.
К слову сохранение в базу как таковое показывает, что DTO часто не нужно вообще, хватит и мапинга.
А что хорошего то? Тебе не кажется, что DTO и конфиг мапинга как-то дублируют друг друга по функционалу? Если у нас такой продвинутый конфиг мапинга, то зачем вообще DTO? Подать в сериализатор доменные модели и пусть разгребает... и так делают, разве нет? А к DTO прибегают, когда конфиг мапинга становится слишком сложен, что бы переварить все данные к отправке. Так, ввели DTO как замену конфига мапинга, но добавили конфиг мапинга дто. Нахрена? Может в DTO что-то подправить?Да. Конфиг маппинга.
Ты так говоришь, как будто это что-то плохое.
Не, возможно в каких-то кейсах сериализации и не место в DTО, когда этот процесс слишком сложен, или за этот процесс уже отвечает вендорная либа и т.д., но это не значит, что он концептуально не к месту. Просто Фаулеровский паттерн дает приближение и идею - что и в каких случаях. А дальше - кто-то вынес toxml, кто-то впилил билдер DTO прямо в DTO оформив его как конструктор.