转:http://blog.sina.com.cn/s/blog_4adc4b090101kuks.html
vo有两种说法,一个是viewObject,一个是valueObject..
就拿前者来说吧,它只负责封装页面传递过来的数据,这和PO有些不同..就拿struts1来说,ActionForm就是一个典型的viewObject.
而valueObject是页面与页面之间的传递时保存值的对象....总的来说,PO是最终传给BO以及BO传个DAO的东西,他很多情况下与我们真正的数据库表想对应.而viewObject是一个页面上提交后的数据,不一定完全和PO的属性相同...
----------------------------------------------------------------------------------------------
实际上没区别 他们的功能都一样 不过他们使用地点不一样
po是在持久层所使用的 用来封装原始数据
而VO则主要在视图层活动 两个JAVABEAN的使用范围不同 假如你从数据库取出来的原始数据 你可以通过业务层将数据进行封装 再通过VO发到页面上去 比方说
数据库表示性别的方式 为 1 和 0 1为男 0为女
获得的时候我们获得的就是原始数据 那么 经过业务层的时候我们可以进行判断 并把他们所对应的参数放到VO里 也就是说
po里为性别属性为1
经过业务层之后 判断性别 并根据原始数据给VO赋值 比如根据1 给VO里的属性赋 ‘男’
也就是说po里的属性 主要是用来给数据库用的
而VO里的属性 就是纯给用户显示的
--------------------------------------------------------------------------------------------------
pojo ---他并不继承任何类(继承Object),实现任何接口,只有属性跟get set方法
vo
po
三个都是java实体对象,vo,跟po比较类似,po是persistent object,是在是orm框架中的entity,po的每个属性基本上都对应数据库表里面的某个字段,而vo(value object)有时可以跟po一样,有时并不对应。POJO(Plain Old Java Objects)是简单java对象,他并不继承任何类(继承Object),实现任何接口,只有属性跟get
set方法。而po一般要实现序列化接口,有时也继承一些类。