DTO - Data Transfer Object паттерн в JavaScript / PHP / C#

Опубликовано: 19 Февраль 2026
на канале: Максим Гром
4,735
151

DTO - используется для типизации передаваемых данных между слоями и не должен содержать поведения. Этот паттерн позволяет реализовать принцип dependency inversion из SOLID.
Некоторый слой указывает какие модели данных он ожидает для своей работы. Клиентский слой создаёт эту модель и передаёт во время вызова эту модель, эта модель и есть DTO.

Клиентский код может понять какие АПИ сервисы есть в библиотеке и понять как переподготовить для него данные. Т.е. сам слой описывает сервисы и DTO и не пропускает просачивание моделей с соседнего слоя, по типу реквеста

Часто в DTO добавляют геттеры сеттеры, если в C# это более менее родной подход, то для других языков программирования это увеличивает количество кода.
DTO не должен содержать поведение, по этому добавлять в него геттер сеттер не имеет смысла если это усложняет разработку.

GIST https://gist.github.com/MaksymGrom/5c...

---- Соц сети
Телеграм, где можно узнать о новых видео и получать доп контент
https://t.me/webDevGromMaxChannel
P.S. В youtube я отвечаю быстрее чем в telegram, буду рад комментам в youtube

----
Чтобы поддержать канал
1) Можно поставить лайк (или дизлайк, если не понравилось видео)
2) Оставить комментарий более 5 слов
3) Досмотреть видео до конца (так удержание будет выше и мне это поможет в продвижении)
4) Оставить отзыв в комментариях, что можно улучшить в видео, чтобы не хотелось его закрывать

#dto #grommax #шаблоны_проектирования

Материально поддержать канал можно следующим способом
1) Перевод на карту https://send.monobank.ua/7oqmsFg3Y
2) Пройти опрос, чтобы помочь выбрать подходящие варианты поддержки
https://forms.gle/ZbFCKJSpDNYp4AMC6

Оглавление
00:00 - Введение
00:29 - UML DTO
01:51 - Как нельзя делать в контроллере
03:03 - Передача параметров в JS
04:52 - DTO JS
05:30 - Типизация DTO в JS
07:41 - DTO и TypeScript
08:54 - Классический DTO в JS
11:15 - DTO Factory в JS
13:09 - DTO в C#
14:51 - DTO в PHP
17:34 - Выводы