Не могли бы вы просто объяснить разницу между объектами Transfer и объектами Domain? И если бы u мог дать пример Java, это было бы здорово..
Разница между объектами передачи и объектами домена
Ответ 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 имеет подчиненную базу для защиты своего домена.