对Java的常用对象(POJO、DAO、DTO、PO、BO、VO)详细解释及应用场景

首先这些对象都应用都是一些单词的简称,也是一种应用思想,故其他语言也可以使用,在 Java  里比较常见这些对象吧。下面来一一解释。

一、POJO(Plain Ordinary Java Object),简单无规则java对象

简单而言,就是一个简单的对象,而且没有任何规则约束。有的时候拿 POJO  来泛指用来做传输对象Java bean (包括今天要介绍的 DTO  、 VO  、 BO  、 PO  等)也是可以的。

二、DAO(Data Access Object),数据访问对象

通常是和数据层打交道的最后一层,通过 DAO  对数据库做识别操作,最终返回我们想要的数据。通常和我们的 PO  、 BO  等基础类型,如List 、Map 等结合使用。

三、DTO(Data Transfer Object),数据传输对象

单纯用来数据传输的对象。我们有的项目又分InDto 和OutDto ,顾名思义就是输入和输出的 Dto  。

主要用于远程调用等需要大量传输对象的地方。

比如我们一张表有100个字段,那么对应的PO就有100个属性。

但是我们界面上只要显示10个字段,

客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,

这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

四、PO(Persistant Object)持久对象

在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理,可以看成是与数据库中的表相映射的java对象。

最简单的 PO  就是对应数据库中某个表中的一条记录,多个记录可以用 PO  的集合。 PO  不包含业务逻辑和数据逻辑。就是一个Entity 或者说ModelEntity 。

PO中应该不包含任何对数据库的操作。

五、BO(Business Object),业务对象

我经常使用的一个,它是和业务挂钩的,简单来说,我们每个业务可能需要很多 PO  (数据库表)来组成,而我们返回前端页面或者返回给调用方的时候,我们需要组合。而这个时候, BO  就派上用场了,它就是一个对 PO  的组合,也可以就是 PO  ,只是出发点是满足业务的传输对象。可以组合PO、VO。

六、VO(Value Object),值对象

其实和 BO  、 DTO  、 PO  差不多,只是更形象化了, VO  更简单,没有任何思想,就是一个传输对象。

你可能感兴趣的:(对Java的常用对象(POJO、DAO、DTO、PO、BO、VO)详细解释及应用场景)