Java基础之数据载体定义及场景

简介: Java开发中,对象按角色分为:PO(持久化对象,对应数据库表),DTO(数据传输对象,跨层传输数据),VO(值对象,用于页面展示),RO(资源对象,如文件连接)。此外,还有Entity(ORM实体),BO(业务对象),DAO(数据访问对象),SO(服务对象),FO(外观对象),AO(应用对象),EO(实体对象)和TO(传输对象),它们在不同场景下负责不同的职责,促进代码组织和解耦。

Java基础之数据载体定义及场景
Java是一门面向对象语言,万物皆是对象(Object)。
前面我们学会了Java的POJO类,知道了Java通过定义类就可以映射现实事物的数据模型,通过实例化对象就可以表现出完整的事物。
今天我们看下在不同的场景下,这些类都是怎么称呼和定义的。
在日常业务开发中,大致分为以下场景:
数据存储到数据库,也叫持久化入库,这种的类叫PO(Persistent Object),在ORM框架中也叫Entity实体类。
数据传输,从这里传到那里,这种叫DTO(Data Transfer Object)。
页面展示数据,比如网页里显示一个简历信息,这种叫VO(Value Object)。
表示资源,比如文件、图片、网络连接、数据库连接、配置等等,叫RO(Resource Object)。
简单了解下就行了,有那种傻不拉几的面试管会问这个,有时候领导或者同事装逼的时候也会专门区分这个。
其实你就叫它类就行,比如入参建了个DTO,你就说建了个DTO,把参数全部封装到了类里。
比如数据库表映射,你就说建了个实体类,映射了表字段,谁要是纠正你说这个是PO吧,你就翻它白眼。
不过有时候规范的话,起类名的时候会需要标注出来,比如接口入参叫 UserDTO,数据库映射user表叫UserPO或User。
反正慢慢总要明白的,都无所吊谓。

下面列出了一些场景及定义:
  DTO(Data Transfer Object)
  DTO 是一个设计模式,用于在不同层之间传输数据。DTO 通常是一个简单的传输类,它包含了需要传输的数据和少量用于访问这些数据的 getter 和 setter 方法。DTO 的主要目的是将数据从客户端传输到服务器,或将数据从服务器的业务逻辑层传输到持久层。

  VO(Value Object)
  VO 是一种表示应用程序数据的对象,它通常包含了不包含业务逻辑的数据。VO 的主要目的是在应用程序的不同部分之间传递数据。VO 可以是一个简单的 Java 对象,也可以是一个复杂的对象,包含了多个属性和其他 VO 对象。

  PO(Persistent Object)
  PO 是一种持久层对象,它通常用于表示数据库中的表。PO 的属性与数据库表的列相对应。PO 的主要目的是将数据库表的数据映射到对象。在 ORM(对象关系映射)框架中,如 Hibernate,PO 通常用来表示实体类。

  Entity
  Entity 通常指的是实体类,它是 ORM 框架中的一个概念。Entity 类是一个 POJO,它映射到数据库中的一个表。Entity 类的每个实例代表表中的一行数据。Entity 类通常使用注解或 XML 配置来定义其与数据库表之间的映射关系。

  BO(Business Object)
  BO 代表业务对象,它通常包含业务逻辑和数据。BO 旨在封装业务规则和业务数据,为应用程序提供处理业务操作的接口。BO 可以包含对 DTO、VO 或 PO 的操作,并将它们转换为业务领域所需要的形式。

  DAO(Data Access Object)
  DAO 代表数据访问对象,它是一种设计模式,用于实现对数据源的数据访问。DAO 的目的是将数据访问逻辑(如数据库操作)与业务逻辑分离。DAO 通常为每种数据源提供一组特定的操作方法,例如增加、删除、修改和查询等。

  SO(Service Object)
  SO 代表服务对象,它通常包含与应用程序业务逻辑相关的操作。SO 用来封装复杂的业务流程,并将这些流程暴露为简单的接口。SO 可以协调多个 BO、DAO 或其他服务对象来完成特定的业务任务。

  FO(Facade Object)
  FO 代表外观对象,它是一种设计模式,用于提供一个统一的接口,以便客户端可以访问子系统的一组接口。FO 用来简化客户端与子系统的交互,将复杂性隐藏在一个简单的接口后面。

  AO(Application Object)
  AO 代表应用程序对象,它是一个较宽泛的概念,可以指代任何在应用程序中使用的对象。AO 可以是 DTO、VO、BO、DAO 或其他任何用于表示应用程序数据和行为的对象。

  EO(Entity Object)
  EO 代表实体对象,它通常与数据库中的实体相对应。EO 用来表示具有持久化状态的对象,它们通常与 ORM 框架中的实体类相似。

  RO(Resource Object)
  RO 代表资源对象,它通常用于表示应用程序中的资源,例如文件、网络连接或数据库连接等。RO 用来封装对资源的操作,并提供管理资源生命周期的方法。

  TO(Transfer Object)
  TO 是传输对象的另一种称呼,它通常与 DTO 类似,用于在不同的层之间传输数据。TO 的目的是减少网络通信次数,通过一次性传输所有必要的数据来实现这一点。

  这些术语在Java应用程序设计中扮演着重要的角色,它们帮助开发者将应用程序划分为不同的层和组件,从而提高代码的可维护性和可重用性。理解这些概念有助于开发者更好地设计和实现复杂的企业级应用程序。
END
目录
相关文章
|
2天前
|
Java
使用kafka-clients操作数据(java)
使用kafka-clients操作数据(java)
13 6
|
2天前
|
算法 搜索推荐 Java
Java插入排序:优雅整理数据的艺术
Java插入排序:优雅整理数据的艺术
|
1天前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
5 1
|
3天前
|
Java
Java树状结构数据构建(基于hutool)
Java树状结构数据构建(基于hutool)
13 2
|
6天前
|
安全 Java 网络安全
【认知革命】JAVA网络编程新视角:重新定义URL与URLConnection,让网络资源触手可及!
【6月更文挑战第22天】JAVA网络编程中,URL代表统一资源定位符,用于表示网络资源地址。通过`new URL("address")`创建URL对象,可解析和访问其组件。URLConnection是与URL建立连接的接口,用于定制HTTP请求,如设置GET/POST、超时及交换数据。
|
1天前
|
存储 Java 编译器
技术经验解读:一文带你搞懂java中的变量的定义是什么意思
技术经验解读:一文带你搞懂java中的变量的定义是什么意思
|
2天前
|
XML Java 定位技术
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
|
3天前
|
JSON JavaScript Java
如何在Java中处理JSON数据?
如何在Java中处理JSON数据?
|
3天前
|
XML JavaScript Java
Java中如何处理XML数据?
Java中如何处理XML数据?
|
4天前
|
存储 Java 数据库连接
Java基础之数据载体定义及场景
Java基础之数据载体定义及场景
11 0