各种 O 对象概念

各种 O 对象

一、各类对象的含义

1.1 PO(persistant Object)、DO(Data Object)

  • 与数据库表一一对应,由 DAO 层向上传输数据源对象
  • 一个 DO/PO 对象对应数据库表的一条记录
  • DO/PO 的每个属性都对应的数据库表的列
  • 只存在于数据库连接期间,连接关闭后,DO/PO 就消失了(一般都会将其转为其他 O 对象)

1.2 DTO(Data Transfer Object)

  • 数据传输对象,用于在应用程序的各个子系统/服务间传输数据
  • 一般是子系统/服务之间进行数据交流的传参
  • DTO 应该仅包括必要属性,用不到的不应该放它里面

1.3 BO(Business Object)

  • 业务对象,封装了业务逻辑和业务数据的对象
  • 与业务紧密相关,一般会包括对多个 PO 对象的处理

1.4 AO(Application Object)

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

1.5 VO(View Object)

  • 显示层对象,通常是 Web 向模板渲染引擎层传输的对象
  • VO 一般是给有界面展示的客户端的数据
  • VO 也是只包括必要属性,用不到的也不应该传

1.6 POJO(Plain Oridinary Java Object)

  • 专指只有 setter/getter 的简单类
  • 包括 DO/DTO/BO/VO 等
  • 就是普通的 JavaBean 对象,理论上只有数据,没有逻辑处理

二、各类对象的区别

1. PO 和 BO 的区别

  • PO 是简单的 Java 对象,没有业务逻辑,只有数据
  • BO 是将 PO 与业务逻辑结合起来的对象,是数据与操作的结合

2. DTO 和 VO 的区别

  • 把前后端看成 2 个子系统,后端传给前端的数据对象就是 VO,前端传给后端的数据对象则是 DTO
  • VO 实际上属于是 DTO 的一种,只是特指传给前端界面的数据对象
  • DTO 则是更广泛的定义,可代指各个独立子系统之间的数据传输对象,比如微服务之间

总结

调试方式

参考

https://zhuanlan.zhihu.com/p/102389552

http://t.zoukankan.com/angel11288-p-06b95a05e8d6d042bf461cabd7532035.html

https://www.bilibili.com/read/cv4956351/

作者

jiaduo

发布于

2023-01-07

更新于

2023-04-02

许可协议