JavaBean、pojo、ejb、vo、dto
JavaBean
JavaBean是一个Java对象,它是可序列化的,有一个空的构造函数,并允许使用getter和setter方法访问属性。它将许多对象封装到单个对象(bean)中,可以作为单个bean对象而不是多个单独对象传递。JavaBean是公共Java类,但是为了编辑工具识别,需要满足约定:
- 该类必须具有公共的默认构造函数, 栗子:public void name();无参数
- 属性使用public 的get,set方法访问,也就是说设置成private,同时get,set方法与属性名的大小也需要对应。例如属性name,get方法就要写成,public String getName(){},N大写(这允许在框架内轻松自动检查和更新bean状态)。
- 需要序列化。这个是框架,工具跨平台反映状态必须的。
由于这些需求主要表示为约定而不是通过实现接口,因此一些开发人员将JavaBeans视为遵循特定命名约定的Plain Old Java Objects。
POJO
关于Java对象,POJO是最初引入的一个术语;用于指定一个简单的轻量级Java对象,而不是重量级EJB;
pojo就是普通的java对象,特别不是ejb;JavaBean是一个可序列化的POJO,具有无参数的构造函数,并允许使用getter和setter方法访问属性。
随着使用POJO的设计变得越来越常用,已经出现了一些系统,这些系统为POJO提供了框架中使用的一些功能以及更多关于实际需要哪些功能区域的选择。Hibernate和Spring就是例子。
EJB
在企业开发中,需要可伸缩的性能和事务、安全机制,这样能保证企业系统平滑发展,而不是发展到一种规模重新更换一套软件系统。 然后有提高了协议要求,就出现了Enterprise Bean。
VO(值对象)
Value Object或VO是一个值对象,例如java.lang.Integer持有值(因此为值对象)。
DTO(数据传输对象)
数据传输对象或DTO是EJB引入的(反)模式。而不是在EJB上执行很多远程调用,这个想法是将数据封装在可以通过网络传输的值对象中:数据传输对象。数据传输对象(DTO),以前称为值对象或VO,是用于在软件应用程序子系统之间传输数据的设计模式。DTO通常与数据访问对象一起使用以从数据库检索数据。
用途
- 解决实体bean不可序列化的问题
- 隐含地定义了一个汇编阶段
DTO和VO都是一样的东西,大多数时候,他们遵循JavaBeans约定,因此也是JavaBeans。而且都是POJO。