what's is vo、po、dto、bo、pojo、dao、entity

java 刘宇帅 5年前 阅读量: 2713

最近接触公司的 java 项目,发现大家对 vo、po、dto、bo、pojo、dao、entity 使用比较乱,所以这里简单整理下。

各名词的作用

VO(value object) 值对象

用于业务之间的数据传输,和 PO 一样只包含数据和对应的 getter 和 setter,可以和数据库中字段对应也可以不对应。

PO(persistent object) 持久化对象

PO 对应于数据库中的一张表,字段和表字段一一对应,PO 只包含数据和对应的 getter 和 setter 函数。在使用中 PO 用来表示数据库查询结果的一条记录,多条记录使用 PO 的集合表示。

DTO(data transfer object) 数据传输对象

DTO 用于表示远程接口调用时的数据传输,比如请求参数存放到 RequestDTO 中,DTO 一般和表中的 PO 的字段一一对应,但是 DTO 不必要包含 PO 中的所有数据,根据具体的业务逻辑决定。对于 RequestDTO 也可以使用一个 ResponseDTO 来表示查询结果返回(多个返回时使用 ResponseDTO 集合表示)。

bo(business object) 业务对象

PO 对应一张数据库的表,而再实际的业务场景中一个业务对象并不能只是用一张表表示,而是由多张表组成。比如订单表包含:订单基础信息、订单商品信息、地址信息、快递信息等,BO 可用来表示该订单业务对象。

POJO(plain ordinary java object) 普通 java 对象

POJO 表示一个简单的 javabean,只包含数据和 getter 和 setter 函数没有具体的业务逻辑。

DAO(data access object) 数据库访问对象

DAO 是一个面向对象的数据库操作对象,为业务提供操作数据的接口即各种 CURD。

entity 实体

entity 一般再 ORM 框架中表示一个表单条记录的实体,和 PO 同样的意思。

so 到底应该怎么用

  1. 使用 DTO 表示接口请求参数
  2. 使用 VO 表示接口返回结果(多个结果使用集合)
  3. 使用 PO 表示数据库单条记录对象
  4. 使用 DAO 表示对数据库的操作对象
  5. 使用 BO 表示比较复杂的业务对象(组装多个 PO)
相关推荐

    提示

    功能待开通!


    暂无评论~