什么是ValueObject
简单说,ValueObject的值(状态)一旦创建以后就不会改变了
。所以可以当基本数据类型
用。比如Java
中的String, BigDecimal, BigInteger都是ValueObject。StringBuffer就不是。
VO
就是DTO,是一种
设计模式
,主要用于减少数据传送次数
,常用在EJB中,现在的Struts项目中也提倡使用这种设计模式
,DAO是一种访问数据库
的设计模式
,大概的思路就是将对一个数据库(和一个数据表)的操作封装到一个类中
,由其他的类来调用这个类的方法
完成对数据库的操作,这样可以简化负责业务处理的类的复杂性和耦合性
DTO是介于WEB层与EJB层中间
的一层,一般采用数据传输对象
工厂来满足这种模式的设计需求。DTO Factory是与具体用例相关的DTO逻辑的唯一驻留点,它可以帮助将客户端与域模型
分离。
DTO就是数据传输对象(Data Transfer Object
)的缩写。
DTO模式或称VO
模式,是指将数据封装成普通的JavaBeans
,在J2EE多个层次之间传输。
DTO类似信使,是同步系统中的Message。
该JavaBeans可以是一个数据模型Model。
常见的方式就是为实体对象建立一个Model类,该类只包含这个对象所有字段的getter和setter
。例如用户User实体有name, password字段,则建立一个UserModel类,public方法有getName,setName,getPassword,setPassword。这样就可以把UserForm作为参数传给其他函数。
Data Transfer Object(DTO)模式是为了解决这样的问题:例如我们的一个实体Bean,其对应的数据库表的字段非常多,那么我们在其Home接口的create方法
中以及Enterprise Bean类的ejbCreate
方法中的参数可能就会很多,导致我们的这些方法不够elegant。我们可以通过定义一个简单的Java类(实现Serializable接口),其中定义一些属性,并提供相应的get和set方法来解决上面的问题。
使用ValueObject来封装业务数据
,并且有一个单独的方法
可以用来获取或者发送这个VO
,当客户端请求一些业务数据的时候,服务端就可以产生出一个VO
,并且将它赋值,最后,可以用传值
的方法传递给客户端。
这样的好处是减少网络对话,加速层之间的数据交流
,我觉得,这样更大的好处是使程序逻辑更加清楚,更加面向对象
。写VO
的时候,要实现Serializable
接口。
public UserVO implements Serializable {
private String loginId;
private String password;
private String name;
private String role;
... ...
}
分享到:
相关推荐
值对象(Value Object,VO)和数据传输对象(Data Transfer Object,DTO)是软件开发中的两种重要设计模式,尤其在C#这样的面向对象编程语言中,它们被广泛应用于数据管理和交换。下面将详细介绍这两种模式的概念、...
2. VO(Value Object):值对象是软件开发中的一种设计模式,用于封装数据对象的属性和方法,它代表了业务对象的一些值或状态。VO通常用于数据的传输对象,实现数据的封装和传递,但在J2EE平台中,VO往往需要具有...
与 PO 不同,VO(Value Object)是值对象,它是业务对象,是存活在业务层的,是业务逻辑使用的。VO 的属性是根据当前业务的不同而不同的,也就是说,它的每一个属性都一一对应当前业务逻辑所需要的数据的名称。 PO ...
在Java开发领域,尤其是涉及到Spring框架以及数据持久化时,我们常常会遇到“PO”(Plain Old Java Object)和“VO”(Value Object)这两个概念。它们都是Java对象,但各自有不同的用途和特点。理解它们的区别对于...
得到的一系列参数存储在ValueObject类的公共变量中,ValueObject类是继承cairngrom类中valueobject类的,并且ValueObject文件是一个绑定的类 实例化事件并且把绑定类作为参数带过去,派发此事件 var historypassvalue:...
在Java开发中,VO(Value Object)类通常用于在应用程序的不同层之间传递数据,比如从数据库获取的数据到前端展示。自动生成VO类可以大大提高开发效率,避免手动编写大量的getter、setter方法和其他样板代码。本篇将...
### 由表名生成VO(Value Object):Oracle数据库中的实现方法 在软件开发领域,尤其是在基于数据库的应用程序开发过程中,经常会遇到需要根据数据库表结构自动生成对应的Java实体类(通常称为VO或DTO等)的需求。...
该模式的核心思想是将实体Bean的相关属性封装成一个单独的对象(Value Object),并通过单次网络调用来传递这个对象,从而显著减少网络交互次数。这种做法不仅能提高系统的整体性能,还能简化客户端代码的复杂度。 ##...
VO(Value Object)值对象 VO是Java中的另一个重要概念,通常用于业务层之间的数据传递。VO也是仅仅包含数据的对象,但它可以和表对应,也可以不对应,这根据业务的需要。VO和PO相似,但VO更像是抽象出的业务对象。...
在IT行业中,尤其是在Java开发领域,我们经常遇到“VO”、“BO”和“PO”这样的术语,它们分别代表了Value Object、Business Object和Persistent Object。理解这三个概念对于编写清晰、可维护的代码至关重要。 首先...
3. VO(Value Object,值对象) VO主要用于在系统组件之间传递数据,它不包含任何业务逻辑,只包含属性和getter/setter方法。VO通常用于展示层,例如在Web应用中,从前端传到后端或者从前端返回到前端的数据就封装...
Vo(Value Object)是一种设计模式,它代表不可变的数据对象,通常用于封装业务逻辑中的数据。这种模式在面向对象编程中非常常见,特别是在领域驱动设计(Domain-Driven Design, DDD)中。 在Java编程中,创建Vo类...
DTO(Data Transfer Object)模式,又称为VO(Value Object)模式,主要用于在J2EE的多层架构间传输数据。DTO就像一个信使,将数据封装在普通的JavaBeans中,避免了直接传输数据库模型或业务对象带来的问题,特别是...
除了DAO和VO模式,PetStore可能还涉及到其他设计模式,如Service Locator、Singleton、Session Facade等,它们共同构成了复杂的EJB系统架构,提升了系统的可扩展性和可维护性。 3. **其他可能的模式** PetStore中...
在Laravel框架中,"Value Object"(值对象)是一种设计模式,用于封装那些具有特定值的数据,强调的是数据的不可变性。在本项目"Laravel开发-laravel-vo"中,开发者旨在深入探讨如何在Laravel应用中有效地使用值对象...
DTO(Data Transfer Object)模式,也称为VO(Value Object)模式,主要用于在J2EE的多层架构之间传递数据。DTO就像一个信使,它封装了业务逻辑处理所需的数据,并在不同层之间进行传输。在系统复杂性增加时,一个...
- PO(Plain Old Java Object)通常代表数据库中的记录,而VO(Value Object)则更多地用于业务逻辑处理,两者之间的转换常常发生在持久层和业务层之间。在这个例子中,`MallPage`既是PO也是VO,因为它的属性直接...
【DTO(Data Transfer Object)模式】或VO(Value Object)模式,用于在J2EE的多层次架构中传递数据。DTO就像一个消息载体,它可以是数据模型Model的实现,帮助减少网络传输开销,并且在系统复杂化后,可能由多个...
本文将重点探讨Webgame客户端通信中的VO(Value Object)设计构想。 #### 二、设计背景与目标 在Webgame开发过程中,客户端和服务端通过Socket通信传输数据,这些数据通常以字节数组的形式进行交换。为了更好地管理...
Middlegen-Hibernate是一款强大的代码生成工具,主要用于基于数据库表结构自动生成Java实体类(Value Object, VO)以及对应的Hibernate配置文件。首先,我们需要访问其官方网站或其他可信源下载最新版本的Middegen-...