Назначение DTO используется для упаковки некоторых данных для передачи другим клиентам / системам по сети. Одним из популярных вариантов использования является веб-API. Поэтому, взяв в качестве примера JSON WEB API, структура DTO в основном зависит от структуры тела вашего ответа API и возможностей базовой структуры, которую вы используете для передачи ie DTO в JSON. * 1001. *
Если базовая структура поддерживает разделение некоторых не примитивных типов (что будет наиболее современным), я не вижу причин, по которым вы не используете эту функцию и ограничиваетесь использованием только примитивных типов данных в DTO.
Например, очень распространено включение LocalDateTime
в DTO, и затем платформа будет сериализована в допустимую строку данных ISO 8601, такую как 2020-04-23T11:11:12.511Z
. Не говоря уже о включении List
/ Set
в DTO.
Если вы ограничиваете себя использованием только примитивного типа в DTO, это как-то означает, что все в ответе JSON будет сглажено и больше не будет вложенной структуры. Это может быть хорошо в очень простой случай, но не очень хороший, когда ваша модель данных немного богаче, что можно выразить гораздо лучше с помощью некоторой вложенной структуры.