POJO(Plain Old Java Object)和DTO(Data Transfer Object)有什么区别?

我找不到他们之间的区别。 有谁知道如何区分它们?

POJO或“Plain Old Java Object”是用于描述“普通”Java对象的名称,而不是EJB(最初)或任何被认为“重”且依赖于其他技术的东西。

DTO或“数据传输对象”是…井……传输数据的对象,通常在您的“业务”类和持久层之间。 它通常是一个无行为的类,就像C风格的结构一样。 它们是一个过时的概念。

POJO只是一个简单的Java对象,首字母缩略词用来强调它确实没什么特别的。

DTO是数据传输对象,用于封装通过层或子系统之间的连接传输的数据。 查看维基百科文章,它也是一个核心J2EE模式( http://www.oracle.com/technetwork/java/transferobject-139757.html )。

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

所有DTO都是POJO,但并非所有POJO都是DTO。 不是DTO的POJO示例是包含状态和行为(业务逻辑)的业务类。

DTO(数据传输对象) :是用于在系统内传输数据的核心J2EE设计模式。 DTO模式

POJO(Plain Old Java Object) :它只是人们用来表示这是一个简单的java对象的缩写(现在它被大量注释用于做一些意义上的完整工作)。

DTO模式
J2EE模式目录

DTO是pojo,但是pojo不是dto,因为pojo可以有更多的行为,但DTO基本上没有行为

Oracle文档有清晰的描述。

POJO可以有行为。 POJO in Action一书详细介绍了如何使用POJOS进行应用程序开发。 DTO是帮助将数据从一个层传输到另一个层的数据容器。 DTO不应包含任何行为。

我可以从DTO维基的这句话中理解POJO和DTO之间的区别:

DTO是简单的对象,不应包含任何业务逻辑,但可能包含用于通过线路传输数据的序列化和反序列化机制。

此外,DTO完全可视化,并在Martin Fowler的企业应用程序架构模式目录中进行了详细描述

POJO =普通的旧Java对象

DTO =数据传输对象

– 编辑

好吧,这是假设您不知道首字母缩略词的含义。 Pojo只是一个没有任何inheritance链的对象。 DTO存在于您的数据模型中,因此可能遵循将其与给定实体相关联的严格链。