Data Transfer Object (DTO) — один із шаблонів проєктування, який використовують для передачі даних між підсистемами програми. Спонукою до використання таких об'єктів є те, що передача даних між процесами зазвичай відбувається за допомогою віддалених інтерфейсів (наприклад, веб-сервісів), де кожен виклик це дорога дія. Через те що більшість вартості кожного виклику пов'язана з часом пересилання в обидва боки між клієнтом і сервером, один зі способів зменшити кількість викликів це використати об'єкт, який агрегує дані, які інакше були б передані кількома викликами.
Зауваження
Data Transfer Object не повинні містити ніякої логіки, але можуть містити механізми серіалізації/десереалізації для передавання даних по дроту.
Приклад
Нехай потрібно створити нового користувача. Щоб не навантажувати функції великою кількістю аргументів, можна створити об'єкт, який міститиме значення в собі, та передати його
public class CreateUserDTO { public string Name { get; set; } public string Surname { get; set; } }
Типи DTO
У багаторівневих системах заведено відрізняти DTO які працюють із рівнем презентації. Так об'єкти, які формують вигляд називають ViewModel, а ті, що являються результатом дій користувача (взаємодія із графічним інтерфейсом, заповнена форма тощо) — InputModel.
Примітки
- Мартін Фаулер (2010). Data Transfer Object. Patterns of Enterprise Application Architecture. Отримано з http://martinfowler.com/eaaCatalog/dataTransferObject.html.
Див.також
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Data Transfer Object DTO odin iz shabloniv proyektuvannya yakij vikoristovuyut dlya peredachi danih mizh pidsistemami programi Sponukoyu do vikoristannya takih ob yektiv ye te sho peredacha danih mizh procesami zazvichaj vidbuvayetsya za dopomogoyu viddalenih interfejsiv napriklad veb servisiv de kozhen viklik ce doroga diya Cherez te sho bilshist vartosti kozhnogo vikliku pov yazana z chasom peresilannya v obidva boki mizh kliyentom i serverom odin zi sposobiv zmenshiti kilkist viklikiv ce vikoristati ob yekt yakij agreguye dani yaki inakshe buli b peredani kilkoma viklikami ZauvazhennyaData Transfer Object ne povinni mistiti niyakoyi logiki ale mozhut mistiti mehanizmi serializaciyi deserealizaciyi dlya peredavannya danih po drotu PrikladNehaj potribno stvoriti novogo koristuvacha Shob ne navantazhuvati funkciyi velikoyu kilkistyu argumentiv mozhna stvoriti ob yekt yakij mistitime znachennya v sobi ta peredati jogo public class CreateUserDTO public string Name get set public string Surname get set Tipi DTOU bagatorivnevih sistemah zavedeno vidriznyati DTO yaki pracyuyut iz rivnem prezentaciyi Tak ob yekti yaki formuyut viglyad nazivayut ViewModel a ti sho yavlyayutsya rezultatom dij koristuvacha vzayemodiya iz grafichnim interfejsom zapovnena forma tosho InputModel PrimitkiMartin Fauler 2010 Data Transfer Object Patterns of Enterprise Application Architecture Otrimano z http martinfowler com eaaCatalog dataTransferObject html Div takozhShabloni proyektuvannya programnogo zabezpechennya Ob yektno oriyentovane programuvannya