«Жемчуг программирования» Джона Бентли больше не является полезным томом.
Объект передачи данных - это объект, который используется для инкапсуляции данных и их отправки из одной подсистемы приложения. к другому.
DTO чаще всего используются уровнем служб в многоуровневом приложении для передачи данных между собой и уровнем пользовательского интерфейса. Основное преимущество здесь заключается в том, что он уменьшает объем данных, которые необходимо пересылать по сети в распределенных приложениях. Они также создают отличные модели в шаблоне MVC.
Еще одно применение DTO может заключаться в инкапсуляции параметров для вызовов методов. Это может быть полезно, если метод принимает более 4 или 5 параметров.
При использовании шаблона DTO вы также должны использовать ассемблеры DTO. Ассемблеры используются для создания DTO из объектов домена и наоборот.
Преобразование из объекта домена в DTO и обратно может быть дорогостоящим процессом. Если вы не создаете распределенное приложение, вы, вероятно, не увидите больших преимуществ от этого шаблона, как здесь объясняет Мартин Фаулер
Определение DTO можно найти на сайте Мартина Фаулера . DTO используются для передачи параметров методам и в качестве возвращаемых типов. Многие люди используют их в пользовательском интерфейсе, но другие раздувают объекты домена из них.
DTO - тупой объект - он просто содержит свойства и имеет методы получения и установки, но никакой другой логики, имеющей какое-либо значение (кроме, возможно, реализации compare () или equals ()).
Обычно классы моделей в MVC (предполагая, что здесь .net MVC) являются DTO или коллекциями / агрегатами DTO
Объекты передачи данных MVC часто используются для сопоставления моделей предметной области с более простыми объектами, которые в конечном итоге будут отображаться в представлении.
Из Википедия :
Объект передачи данных (DTO), ранее известный как объекты значений или VO, является шаблон проектирования, используемый для передачи данных между программным приложением подсистемы. DTO часто используются вместе с доступом к данным. объекты для извлечения данных из базы данных.