The pattern which is known today as Data Transfer Object was mistakenly (see this definition) called Value Object in the first version of the Core J2EE Patterns. The name was corrected in the second edition of the Core J2EE Patterns book, but the name "Value Object" became very popular and is still used as an alias for the actual DTOs. There is, however, a real difference between both patterns:
1. A Data Transfer Object (DTO) is just as stupid data container which is used to transport data between layers and tiers. It mainly contains of attributes. Actually you can even use public attributes without any getters / setters, but this will probably cause too much meetings and discussions :-). DTOs are anemic in general and do not contain any business logic. DTOs are often java.io.Serializable - its only needed if you are going to transfer the data across JVMs.
2. A Value Object [1,2] represents itself a fix set of data and is similar to a Java enum. A Value Object doesn't have any identity, it is entirely identified by its value and is immutable. A real world example would be Color.RED, Color.BLUE, SEX.FEMALE etc.
Data Transfer Objects are widely overused and the "real" Value Objects a bit unattended. Most developers who use the term Value Object actually have in mind DTOs.
Original: http://www.adam-bien.com/roller/abien/entry/value_object_vs_data_transfer
分享到:
相关推荐
6. DTO(Data Transfer Object,数据传输对象) DTO与VO类似,也是用于数据传输,但DTO通常跨越网络边界,比如在Web服务中,服务器端的业务数据通过DTO传递到客户端。DTO可能会包含多个VO对象的组合,以适应更复杂...
值对象(Value Object,VO)和数据传输对象(Data Transfer Object,DTO)是软件开发中的两种重要设计模式,尤其在C#这样的面向对象编程语言中,它们被广泛应用于数据管理和交换。下面将详细介绍这两种模式的概念、...
#### 三、VO (Value Object) 值对象 **定义:** - VO是一种只包含数据属性的简单Java对象,通常用于封装业务逻辑层处理的数据。 - VO对象是业务逻辑层的一部分,用于在各个层级之间传递数据。 **特点:** - VO对象...
在Android开发中,我们常常定义各种实体类,如Entity、VO(Value Object)、DTO(Data Transfer Object)、Model等,它们代表了业务层或数据层的数据结构。这些类通常包含一组属性和getter/setter方法,便于访问和...
DTO 是 Data Transfer Object 的缩写,即数据传输对象。VO 是 Value Object 的缩写,即值对象。这三种对象都是 Java 中常用的类别,但是它们之间的转换却是一件复杂的事情。 在 Java 中,我们可以使用反射机制来...
#### 二、DTO(Data Transfer Object)概念 DTO,即数据传输对象,主要用于在应用程序的不同层级之间传输数据,特别是跨越网络边界时。它的主要目的是简化数据结构,确保数据的一致性和简洁性,从而提高系统的可...
在软件开发过程中,数据传输对象(Data Transfer Object, DTO)是一种常见的设计模式,用于在系统之间传递大量数据。DTO不包含任何业务逻辑,主要是数据容器。在这个场景中,"快速生成DTO"指的是利用Excel模板来自动...
1. **VO(Value Object)**:也称作Value Object或者Data Transfer Object,主要用于封装数据层中的数据,以便于在不同的层级间进行传输。在Java中,一个典型的VO通常会包含一些私有字段以及对应的getter和setter方法...
DTO(Data Transfer Object):数据传输对象,指的是主要用于远程调用等需要大量传输对象的地方。DTO 是用来传输数据的对象,可以减少数据传输的量。 TO(Transfer Object):数据传输对象,指的是在应用程序不同 ...
在Web开发中,VO经常被用作数据传输对象(Data Transfer Object,简称DTO)来实现不同层级间的数据交换。例如: - **用途**:在不同业务层之间进行数据传递,或者作为前端与后端之间数据交换的基础。 - **特点**: ...
VO(Value Object)值对象 VO是Java中的另一个重要概念,通常用于业务层之间的数据传递。VO也是仅仅包含数据的对象,但它可以和表对应,也可以不对应,这根据业务的需要。VO和PO相似,但VO更像是抽象出的业务对象。...
Value Object (VO) 和 Data Transfer Object (DTO) Value Object(值对象)和Data Transfer Object(数据传输对象)是两种常见的对象模型设计模式。它们主要用于在不同的层之间传递数据。VO通常表示一个具有明确...
4. **TO(Transfer Object,数据传输对象)/DTO(Data Transfer Object)**:TO或DTO用于跨层数据传输,例如从服务器端传递到客户端。它们通常是为了减少网络传输的数据量而设计的,只包含必要的字段。 5. **BO...
4. DTO(Data Transfer Object):数据传输对象,用于跨层传输数据,通常用于减少网络传输的数据量,例如在服务端和客户端之间。 在实际项目中,POJO对象可能会转化为VO或DTO,根据需求进行属性的选择和调整。例如...
4. **免DTO/VO转换**:DTO(Data Transfer Object)和VO(Value Object)是通常用来在系统组件之间传递数据的对象。bean-searcher-dev框架允许开发者直接使用业务对象进行查询,避免了将查询结果转换为DTO或VO的过程...
在JavaWeb开发中,Value Object(VO)或者称为Data Transfer Object(DTO)常被用来作为模型对象,用于在不同层之间传递数据。VO/Bean通常包含属性和getter/setter方法,以提供对属性的访问和修改,确保数据的封装性...
- 数据传输对象类:DTO(Data Transfer Object)类,服务层和管理层向外传输数据,位于`top.zywork.dto`包。 - 值对象类:VO(Value Object)类,用于视图层传输数据,位于`top.zywork.vo`包。 - 数据查询对象:...
5. **VO(Value Object)/DTO(Data Transfer Object)**:值对象或数据传输对象,用于在不同层之间传递数据,例如在Controller和Service之间,或Service和DAO之间。 6. **Service层**:业务逻辑层,处理复杂的业务...