Объект передачи данных (DTO) используется для обмена данными между различными частями приложения (например, разными уровнями) или разными приложениями.
- DTO - это просто "тупая" структура данных.
- Они используются в определениях контрактов / интерфейсов - это означает, что любой компонент, который использует один из этих интерфейсов, "знает" об этихобъекты.
Объекты домена (DO) (и классы, из которых они получены) реализуют бизнес-логику, поэтому они расположены только на уровне бизнес-логики / домене (основное значение одно и то же, даже если термины разные).
Поскольку DO реализует бизнес-логику, они могут быть сложными и могут включать методы, события и т. д.
Oneдополнительная точка зрения о DTO
Согласно школе мысли Мартина Фаулера DTO - это комбинация нескольких объектов (каждый из которых будет тем, что большинство людей обычно называют DTO);обоснование заключается в том, что в ситуациях дешевле отправлять большие пакеты данных реже (в отличие от «болтливости» и постоянной отправки множества небольших пакетов по сети).
Так что, где большинство людей будут просматривать DTOВ качестве отдельного объекта Мартин Ф. говорит, что DTO - это просто «оболочка», которая содержит несколько дискретных (и, возможно, не связанных) объектов.IMO не является большой проблемой - большинство людей считают, что DTO соответствует моему определению в верхней части этого ответа (или что-то близкое к нему).