В чем разница между POJO (простой старый Java-объект) и DTO (объект передачи данных)? - PullRequest
20 голосов
/ 15 сентября 2009

Я не могу найти разницу между ними. Кто-нибудь знает, как их дифференцировать?

Ответы [ 8 ]

13 голосов
/ 15 сентября 2009

POJO или «Простой старый объект Java» - это имя, используемое для описания «обычных» объектов Java, в отличие от EJB (изначально) или чего-либо, что считается «тяжелым» с зависимостями от других технологий.

DTO или «Объект передачи данных» - это объект для ... ну ... передачи данных, обычно между вашими "бизнес" -классами и уровнем персистентности. Обычно это класс без поведения, очень похожий на структуру в стиле Си. Они устарели.

10 голосов
/ 15 сентября 2009

A POJO - это простой Java-объект, аббревиатура используется для того, чтобы подчеркнуть, что в нем нет ничего особенного.

A DTO - это объект передачи данных, который используется для инкапсуляции данных, которые передаются по соединению между слоями или подсистемами. См. Статью в Википедии, это также шаблон Core J2EE (http://www.oracle.com/technetwork/java/transferobject-139757.html).

http://en.wikipedia.org/wiki/Data_transfer_object

6 голосов
/ 11 апреля 2012

Все DTO являются POJO, но не все POJO DTO. Примером POJO, который не является DTO, является бизнес-класс, содержащий состояние и поведение (бизнес-логика).

5 голосов
/ 14 января 2015

DTO - это pojo, но pojo - это не dto, потому что у pojo может быть больше поведения, но DTO просто не работает

Документ Oracle имеет четкое описание.

5 голосов
/ 15 сентября 2009

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


POJO (Обычный старый Java-объект) : Это просто аббревиатура, которую люди используют для предположения, что это простой Java-объект (который в настоящее время сильно аннотирован для выполнения некоторой полной работы). 1010 *

DTO Pattern
Каталог образцов J2EE

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

POJO может иметь поведение. Книга POJO в действии подробно описывает использование POJOS для разработки приложений. DTO - это контейнеры данных, которые помогают переносить данные с одного уровня на другой. DTO не должны содержать никаких действий.

0 голосов
/ 16 апреля 2018

Я мог понять разницу между POJO и DTO из этого предложения вики DTO :

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

Кроме того, DTO отлично визуализируется и подробно описывается в Каталоге шаблонов корпоративной архитектуры приложений Мартина Фаулера

0 голосов
/ 15 сентября 2009

POJO = Простой старый Java-объект

DTO = Объект передачи данных

- Правка

Ну, это предполагает, что вы не знаете, что означают аббревиатуры. Pojo - это просто объект, свободный от какой-либо цепочки наследования. DTO существует в вашей модели данных, поэтому, вероятно, следует строгой цепочке, связывающей его с данным объектом.

...