DTO
Data Transfer Object (DTO) — один із шаблонів проєктування, який використовують для передачі даних між підсистемами програми. Спонукою до використання таких об'єктів є те, що передача даних між процесами зазвичай відбувається за допомогою віддалених інтерфейсів (наприклад, веб-сервісів), де кожен виклик це дорога дія.[1] Через те що більшість вартості кожного виклику пов'язана з часом пересилання в обидва боки між клієнтом і сервером, один зі способів зменшити кількість викликів це використати об'єкт, який агрегує дані, які інакше були б передані кількома викликами.[1]
Зауваження
ред.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.