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

时间:2009-09-15 05:35:34

标签: java terminology pojo dto

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

8 个答案:

答案 0 :(得分:13)

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

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

答案 1 :(得分:10)

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

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

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

答案 2 :(得分:6)

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

答案 3 :(得分:5)

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


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

<强> DTO Pattern
J2EE Pattern Catalog

答案 4 :(得分:5)

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

Oracle文档有清晰的描述。

答案 5 :(得分:3)

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

答案 6 :(得分:0)

我可以从DTO's wiki的句子中理解POJO和DTO之间的区别:

  

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

此外,DTO完全可视化,并在Martin Fowler的Catalog of Patterns of Enterprise Application Architecture

中详细描述

答案 7 :(得分:-2)

POJO =普通旧Java对象

DTO =数据传输对象

- 编辑

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