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 - Выводы