Объект передачи данных - Data transfer object

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

Разница между объектами передачи данных и бизнес-объекты или же объекты доступа к данным заключается в том, что DTO не имеет никакого поведения, кроме хранения, извлечения, сериализации и десериализации своих собственных данных (мутаторы, аксессуары, парсеры и сериализаторы ). Другими словами, DTO - это простые объекты, которые не должны содержать никакой бизнес-логики, но могут содержать механизмы сериализации и десериализации для передачи данных по сети.[1]

Этот шаблон часто неправильно используется вне удаленных интерфейсов. Это вызвало ответ от его автора[3] где он повторяет, что вся цель DTO - передавать данные в дорогостоящих удаленных вызовах.

Терминология

А объект значения не является DTO. В прошлом Java-разработчики объединяли эти два термина.[2]

Рекомендации

  1. ^ а б MSDN (2010). Объект передачи данных. Microsoft MSDN Библиотека. Извлекаются из https://msdn.microsoft.com/en-us/library/ms978717.aspx.
  2. ^ а б c d Фаулер, Мартин (2010). Объект передачи данных. Паттерны архитектуры корпоративных приложений. Извлекаются из http://martinfowler.com/eaaCatalog/dataTransferObject.html.
  3. ^ LocalDTO. Извлекаются из http://martinfowler.com/bliki/LocalDTO.html.

внешняя ссылка