Java基础 - AO BO DO PO VO DAO DTO POJO

AO BO DO PO VO DAO DTO POJO

AO

Application Object 应用对象。

在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。

BO

Business Object 业务对象。

由Service层输出的封装业务逻辑的对象。这个对象可以包括一个或多个其它的对象。

BO描述一个对象的行为和动作,也涉及到基于它的其他对象的一些行为和动作。比如一个“人”的业务逻辑,有睡觉,吃饭,工作,上班等等,还有和别人合作发生的动作。这样处理业务逻辑时,我们就可以针对BO去处理。

DO

Data Object 数据对象。

与数据库表结构一一对应,通过DAO层向上传输数据源对象。

PO

Persistant Object 持久对象。

数据库表中的记录在Java对象中的显示状态。最形象的理解就是一个PO就是数据库中的一条记录。

VO 

View Object 显示层对象。

通常是Web向模板渲染引擎层传输的对象。对于一个WEB页面将整个页面的属性封装成一个对象,然后用一个VO对象在控制层与视图层进行传输交换。

DAO

Data Access Object 数据访问对象。

这个和上面几个O区别最大,基本没有互相转化的可能性和必要。主要用来封装对数据库的访问。通过它可以把POJO持久化为DO/PO,用DO/PO组装出来VO、DTO。

DTO

Data Transfer Object 数据传输对象。

DTO是经过处理后的DO/PO,可以增加或者减少PO的属性。

主要用于远程调用等需要大量传输对象的地方。比如一张表有100个字段,那么对应的DO/PO就有100个属性。但是我们界面上只要显示10个字段,客户端在获取数据时,没有必要把整个全部字段传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO 。

POJO

Plain Ordinary Java Object 简单Java对象。

POJO是一种概念或者接口,身份及作用随环境变化而变化。它不包含业务逻辑或持久逻辑等,不具有任何特殊角色,不继承或不实现任何其它Java框架的类或接口。

一个POJO持久化以后就是PO。直接用它传递、传递过程中就是DTO。直接用来对应表示层就是VO。

 

领域模型命名规约:

数据对象:xxxDO,xxx即为数据表名。

数据传输对象:xxxDTO,xxx为业务领域相关的名称。

展示对象:xxxVO,xxx一般为网页名称。

POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

posted @ 2019-06-27 14:17  Helios_Fz  阅读(371)  评论(0编辑  收藏  举报