В области программирования объект передачи данных ( DTO [1] [2] ) — это объект, который переносит данные между процессами. Мотивацией для его использования является то, что связь между процессами обычно осуществляется с использованием удаленных интерфейсов (например, веб-сервисов), где каждый вызов является дорогостоящей операцией. [2] Поскольку большая часть стоимости каждого вызова связана со временем на передачу и подтверждение между клиентом и сервером, одним из способов сокращения количества вызовов является использование объекта (DTO), который объединяет данные, которые могли бы быть переданы несколькими вызовами, но которые обслуживаются только одним вызовом. [2]
Разница между объектами передачи данных и бизнес-объектами или объектами доступа к данным заключается в том, что DTO не имеет никакого поведения, кроме хранения, извлечения, сериализации и десериализации собственных данных ( мутаторы , аксессоры , сериализаторы и парсеры ). Другими словами, DTO — это простые объекты, которые не должны содержать никакой бизнес-логики, но могут содержать механизмы сериализации и десериализации для передачи данных по проводам. [1]
Этот шаблон часто неправильно используется вне удаленных интерфейсов. Это вызвало ответ его автора [3] , где он повторяет, что вся цель DTO — перекладывать данные в дорогих удаленных вызовах.
Объект -значение не является DTO. Эти два термина были объединены сообществом Sun/Java в прошлом. [2]
Для шаблона модель-представление-модель представления объект передачи данных может называться моделью представления. [4]