PO、VO、DAO、BO、DTO、POJO,你能分清吗?
编辑
13
2021-06-24
在Java开发中,我们经常会遇到PO、VO、DAO、BO、DTO、POJO这些缩写词。它们看起来很像,但各自有不同的职责和用途。今天我们就来聊聊这些“O”们,帮你理清它们的区别。
1. PO(Persistent Object):持久对象
PO 是跟数据库表直接打交道的对象。每个PO对象通常对应数据库中的一张表,表中的每个字段就是PO对象的属性。简单来说,PO就是数据库表的“代言人”。
- 用途:主要用于数据层,直接与数据库交互。
- 特点:与数据库表结构一一对应。
2. VO(Value Object):值对象
VO 是用来传递数据的对象,通常用于业务层之间的数据传递。VO可以包含多个PO的数据,也可以只包含部分数据。它的主要任务是“搬运”数据。
- 用途:用于业务逻辑层和表示层之间的数据传输。
- 特点:抽象出的业务对象,可能与表对应,也可能不对应。
3. DAO(Data Access Object):数据访问对象
DAO 是数据访问对象的接口,负责与数据库打交道。它就像是业务逻辑和数据库之间的“桥梁”,帮助业务逻辑层从数据库中获取数据。
- 用途:封装对数据库的访问操作,提供增删改查等接口。
- 特点:通常包含DAO接口、DAO实现类和数据传输对象(DTO)。
4. BO(Business Object):业务对象
BO 是业务对象,它封装了业务逻辑。BO可以包含多个PO或DTO,处理复杂的业务逻辑。简单来说,BO就是业务逻辑的“指挥官”。
- 用途:封装业务逻辑,处理复杂的业务操作。
- 特点:包含业务逻辑,可能涉及多个PO或DTO。
5. DTO(Data Transfer Object):数据传输对象
DTO 是数据传输对象,主要用于远程调用或大量数据传输的场景。DTO通常只包含需要传输的数据,避免传输不必要的信息。
- 用途:用于远程调用或大量数据传输,减少网络开销。
- 特点:只包含需要传输的数据,避免暴露数据库表结构。
6. POJO(Plain Old Java Object):简单的Java对象
POJO 是普通的Java对象,没有复杂的框架依赖。它可以作为VO、DTO、BO等使用,但通常不包含业务逻辑或数据库访问代码。
- 用途:作为简单的Java对象,用于各种场景。
- 特点:不依赖特定框架,只包含属性和getter/setter方法。
总结
- PO:数据库表的“代言人”,与表结构一一对应。
- VO:数据搬运工,用于业务层之间的数据传输。
- DAO:数据库的“桥梁”,负责数据访问操作。
- BO:业务逻辑的“指挥官”,处理复杂的业务逻辑。
- DTO:数据传输的“快递员”,用于远程调用或大量数据传输。
- POJO:普通的Java对象,简单、灵活,适用于多种场景。
希望通过这篇文章,你能更好地理解这些“O”们的区别和用途。下次再看到它们时,就不会再傻傻分不清啦!
- 0
- 0
-
分享