Подтвердить что ты не робот

Разница между объектами передачи и объектами домена

Не могли бы вы просто объяснить разницу между объектами Transfer и объектами Domain? И если бы u мог дать пример Java, это было бы здорово..

4b9b3361

Ответ 1

  • У DTO нет логики. У них только поля (состояния). Они используются при передаче данных из одного уровня/подсистемы в другой.
  • Доменные объекты могут иметь логику (в зависимости от того, используете ли вы дизайн, основанный на домене, или используете модель анемичных данных), и они обычно связаны с структурой базы данных.

При использовании модели анемических данных (т.е. у ваших объектов домена нет никакой логики), DTO и объект домена могут быть одним и тем же объектом.

Связано: http://techblog.bozho.net/?p=427

Ответ 2

Объект передачи данных (DTO) используется для обмена данными между различными частями приложения (например, разными слоями) или различными приложениями.

  • DTO - это просто "немой" структура данных.
  • Они используются в определениях контрактов/интерфейсов - это означает, что любой компонент, который использует один из этих интерфейсов, "знает" об этих объектах.

Объекты домена (DO) (и классы, из которых они получены) реализуют бизнес-логику, поэтому они находятся только в бизнес-логическом уровне/домене (существенный смысл один и тот же если члены разные).

Поскольку DO внедряет бизнес-логику, они могут быть сложными и включать в себя методы, события и т.д.

Еще один момент о DTO

По мнению школы мысли Мартина Фаулера, DTO представляет собой комбинацию нескольких объектов (каждый из которых будет тем, что большинство людей обычно называют DTO); логическое обоснование заключается в том, что в ситуациях менее затратно отправлять более крупные пакеты данных реже (в отличие от того, чтобы быть "болтливым" и отправлять множество небольших пакетов по всему кабелю).

Поэтому, когда большинство людей будут рассматривать DTO как один объект, Мартин F говорит, что DTO - это просто "конверт", содержащий несколько дискретных (и, возможно, несвязанных) объектов. Не большая проблема ИМО - большинство людей считают, что DTO соответствует моему определению в верхней части этого ответа (или что-то близкое ему).

Ответ 3

Объекты переноса часто сериализуются из-за наименования его использования, это особенно важно, если вызовы удалены и между jvm, или они будут использоваться таким образом, который способствует сериализации, например сеанс состояния beans. Для этой цели объекты переноса должны быть восприимчивы к такой "обработке", I.e. Перенос объектов реализуется сериализуемым.

Нельзя сказать об обратном объектах домена. Объекты домена могут противоречить поведению, однако dto является просто транспортной средой.

Ответ 4

Объект домена в деловой перспективе, он является субъектом или субъектом деятельности с целым доменом и потоками, DTO - это объект данных, который не совпадает с данными bean, которые точно отражают объекты базы данных (особенно в архитектуре ORM) DTO может иметь агрегацию, преобразование, комбинацию, удовлетворяющую представлениям или некоторым потребностям в munipulate данных, это не тема, но объект Domain имеет подчиненную базу для защиты своего домена.