VO(value object) 值对象
通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。
BO(business object) 业务对象
从业务模型的角度看,见UML元件领域模型中的领域对象。封装 业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。
PO(persistant object) 持久对象
在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分 业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
DTO(data transport object)对象
比如一张表有100个字段,那么PO对应的属性就有100个属性,但是我们界面上只需要10个字段显示用之类的,那么就没必要把整个PO对象都传过来,前端用多少,我们就传多少,这样保证隐私,于是我们就用这只有10个属性的DTO对象来传到客户端。
总之:POPJ一个简单的Java对象,不包含业务逻辑和持久逻辑,一个POPJ对象持久化后就是PO,直接用其传递,传递中叫DTO,直接用来对应表示层就是VO