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