java中的几种对象解释

java的几种对象解释

1 PO(持久对象)

  • PO(persistant object, 持久对象),可以看成是与数据库中的表相映射的java对象
  • 最形象的理解就是一个PO就是数据库中的一条记录,多个记录可以用PO的集合
  • PO中应不包含任何对数据库的操作

2 VO(值对象)

  • VO(value object, 值对象),通常用于业务层之间的数据传递,仅仅包含数据,是抽象出来的业务对象
  • 根据业务需要,VO可以和数据库表对应,也可以不对应
  • 主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。

3 DAO(数据访问对象)

  • DAO(data access object, 数据访问对象)对象用于访问数据库。
  • DAO包含了各种数据库的操作方法,结合PO对数据库进行相关操作,提供数据库的CRUD操作

4 BO(业务对象)

  • BO(business object, 业务对象)是封装业务逻辑的java对象
  • 通过调用DAO方法,结合PO,VO进行业务操作
  • 这个对象可以包括一个或其他的对象,例如: 一个简历,包括教育经历、工作经历、关系等等,教育经历对应一个PO,工作经历对应一个PO,关系对应一个PO,此时工作简历可以作为一个BO,每个BO包含这些PO

5 POJO

  • plain ordinary java object 简单无规则的java对象
  • VO和PO应该都属于POJO
  • 一个POJO用于持久化就是PO,直接用它传递、传递过程中就是DTO,直接用来对应表示层就是VO

6 DTO(数据传输对象)

  • DTO(Data Transfer Object, 数据传输对象)是一组需要跨进程或网络边界传输的聚合数据的简单容器
  • 它不应该包含业务逻辑,并将其行为限制为诸如内部一致性检查和基本验证之类的活动,主要用于远程调用等需要大量传输对象的地方。
  • 比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO