Когда объект квалифицируется как DTO? - PullRequest
2 голосов
/ 02 сентября 2010

DTO (объекты передачи данных) - это объекты, используемые для передачи информации между несколькими подсистемами приложения, которые часто разделяются сетью или границей процесса. Это моё понимание.

Однако, с точки зрения Java, должны ли подсистемы / модули быть в разных экземплярах JVM для объектов, которые они используют между собой, чтобы квалифицироваться как DTO? (Я считаю, что существенного разграничения в архитектуре с точки зрения модульности и функциональности между подсистемами было бы достаточно.) Что скажете?

Кроме того, учитывая объекты, которыми обмениваются несколько модулей в ТО ЖЕ уровень / уровень архитектуры, разве эти объекты не считаются DTO? Является ли разделение уровней обязательным?

Заранее спасибо.

С уважением,

Нагендра У М

1 Ответ

3 голосов
/ 02 сентября 2010

Поскольку передача объектов между уровнями требует некоторой сериализации, это считается DTO.Передача объектов между уровнями обычно осуществляется с использованием доменных объектов, поэтому не требуется сериализация.

Таким образом, ваши DTO, как правило, не имеют только свойств поведения для хранения данных.

Небольшое примечание: DTO часто принимают за анемичные объекты, когда у вас есть объекты без поведения, только данные.Или объекты poltergeist, когда объекты используются только для передачи данных в и из методов или классов и затем исчезают.

В качестве примера иногда ваш механизм сохранения данных требует от вас реализации или наследования нежелательных интерфейсов или классовподключиться к слою вашего домена, поэтому вы создаете объекты, которые наследуют или реализуют интерфейс / класс и переносят данные в эти классы на постоянство..

...