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
目录
相关文章
|
7月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
1752 0
|
7月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
361 4
|
7月前
|
安全 Java 数据建模
Java记录类:简化数据载体的新选择
Java记录类:简化数据载体的新选择
405 101
|
7月前
|
安全 Java 开发者
Java记录类:简化数据载体的新方式
Java记录类:简化数据载体的新方式
351 100
|
7月前
|
安全 Java 开发者
Java Record:简化数据载体的新选择
Java Record:简化数据载体的新选择
331 101
|
8月前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
8月前
|
安全 IDE Java
Java记录类型(Record):简化数据载体类
Java记录类型(Record):简化数据载体类
607 143
|
8月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
自然语言处理 Java 关系型数据库
Java|小数据量场景的模糊搜索体验优化
在小数据量场景下,如何优化模糊搜索体验?本文分享一个简单实用的方案,虽然有点“土”,但效果还不错。
313 0