DTO предназначен для передачи данных между границами системы, а доменная сущность представляет бизнес-объект с идентичностью и правилами. DTO может быть удобной проекцией, не совпадающей со структурой хранения.
Чем DTO (Data Transfer Object, объект передачи данных) отличается от доменной сущности?
DTO предназначен для передачи данных между границами системы, а доменная сущность представляет бизнес-объект с идентичностью и правилами. DTO может быть удобной проекцией, не совпадающей со структурой хранения.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
DTO предназначен для передачи данных между границами системы, а доменная сущность представляет бизнес-объект с идентичностью и правилами. DTO может быть удобной проекцией, не совпадающей со структурой хранения.
Например, Order содержит состояние заказа и допустимые переходы, а OrderResponse — поля, которые разрешено отдать клиенту. DTO помогает не раскрывать внутренние детали и не связывать API с ORM-моделью. Валидация формата входа может находиться в DTO, но инварианты бизнеса должны оставаться в доменной логике. Создавать отдельный DTO для каждого простого случая без пользы тоже не обязательно.