一些常用业务 Object 介绍

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

在日常工作中,我们经常会看到一些缩写,BO、VO、DTO 等,代码中经常会有 BO=>VO、BO=>DTO 等代码,如果我们对这些概念不熟悉的话,势必对我们理解代码产生一定的影响。今天我们来看一下工作中一些常用的业务 Object,并说明一下他们的使用场景。

业务 Object

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

在 Java 服务器开发的三层架构中分成了控制层(Controller)、表示层(Service)和数据访问层(DAO)。数据访问层专门负责跟数据库进行数据交互。

分层的主要作用是解耦。具体起来,DAO 层的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个提交获得指定数据的要求。

而 Service 层,则是专注业务逻辑,对于其中需要的数据库操作,都通过 DAO 层去实现。

VO(Value Object/View Object:值对象/表现层对象)

VO 从名字来看主要是展示用的数据。例如网页、APP 的接口。一般可以理解为 JSON。

相比于 DTO,VO 更多的是对业务的解释,VO 会根据业务的需要,选择 DTO 的部分或者全部字段去展示。

BO(Business Object:业务对象)

BO 就是把 业务逻辑 封装为一个对象(业务逻辑这个概念很重要)。这个对象可以包含一个或多个其他对象。

在整个请求过程中,我们构造一个 BO,在之后的过程中,我们都是通过传递 BO 来进行操作,包括 对 DTO、VO 等的转换。

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

DTO 可以理解为接口之间传输的数据封装。主要用于远程调用等需要大量传输对象的地方。

PO(PerisPeristant Object:持久层对象)

对于 PO 的理解可以是:一个 PO 就是一条数据库记录。在存入数据库的时候,我们会构建一个 PO 对象。

那么 PO 对象和 DTO 对象有什么区别呢?

我们可以这么理解,PO 记录的是数据库一条记录的所有字段,用于插入数据库。DTO 用于取数据库中一条记录的部分字段使用。这样有两个好处:

  1. 能够提高数据传输的速度(减少了传输字段)

  2. 能隐藏后端表结构

参考文档

猜你喜欢

转载自juejin.im/post/7017439003146190879