POJO、DTO、VO、PO、DAO、Entity等JavaBean(参考《Java 开发手册》)

JavaBean

一种可重用组件,即“一次编写,任何地方执行,任何地方重用”。满足三个条件

  • 类必须是具体的和公共的
  • 具有无参构造器
  • 提供一致性设计模式的公共方法将内部域或暴露成员属性

下面全都是JavaBean


POJO(Plain Ordinary Java Object):简单无规则Java对象

在《Java 开发手册》泰山版规约中,POJO 专指只有 setter/getter/toString 的 简单类,包括 DO/DTO/BO/VO 等。

DO(Data Object):数据对象

此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。一般情况下,DO是用来映射数据库记录的实体类,DTO是用来在网络上传输的实体类。两者的不同除了适用场景不同外还有就是DTO需要实现序列化接口。从DB查询到数据之后,ORM框架会把数据转换成DO对象,通常我们需要再把DO对象转换为DTO对象。同样的,插入数据到DB之前需要将DTO对象转换为DO对象然后交给ORM框架去执行JDBC。

BO(Business Object):业务对象

BO把业务逻辑封转为一个业务对象,这个对象可以包括一个或多个其它的对象,通过调用DAO方法,结合PO或VO进行业务操作。BO 包括了业务逻辑,常常封装了对 DAO、RPC 等的调用,可以进行 PO 与 VO/DTO 之间的转换。BO 通常位于业务层,要区别于直接对外提供服务的服务层:BO 提供了基本业务单元的基本业务操作,在设计上属于被服务层业务流程调用的对象,一个业务流程可能需要调用多个 BO 来完成。

DTO(Data Transfer Object):数据传输对象

用于表示一个数据传输对象。DTO 通常用于不同服务或服务不同分层之间的数据传输。DTO 与 VO 概念相似,并且通常情况下字段也基本一致。

VO(View Object):显示层对象

在这里插入图片描述
这里是以View Object来说,用于封装传递到前端需要展示的字段。参照《Java 开发手册》泰山版
在这里插入图片描述

PO(Persistant Object):持久层对象

是ORM(Objevt Relational Mapping)框架中的Entity,PO属性和数据库中表的字段形成一一对应关系。

DAO(Data Access Object):数据访问对象

是sun的一个标准J2EE设计模式,这个模式中有个接口就是DAO,负责持久层的操作
主要用来封装对数据的访问,注意,是对数据的访问,不是对数据库的访问

Entity

实体,和PO的功能类似,和数据表一一对应,一个实体一张表。