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

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

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
目录
相关文章
|
Windows
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
Qt5.14.2 轻松掌握Qt中的压缩与解压缩:QuaZIP的神秘面纱与实战演练之使用QuaZIP
565 0
|
机器学习/深度学习 资源调度 Kubernetes
进击的Kubernetes调度系统(三):支持批任务的Binpack Scheduling
阿里云容器服务团队结合多年Kubernetes产品与客户支持经验,对Kube-scheduler进行了大量优化和扩展,逐步使其在不同场景下依然能稳定、高效地调度各种类型的复杂工作负载。 《进击的Kubernetes调度系统》系列文章将把我们的经验、技术思考和实现细节全面地展现给Kubernetes用户和开发者,期望帮助大家更好地了解Kubernetes调度系统的强大能力和未来发展方向。
4762 100
|
数据安全/隐私保护
OAuth2.0实战案例
OAuth2.0实战案例
309 0
OAuth2.0实战案例
|
监控 数据挖掘 BI
ERP系统中的成本管理与生产成本核算解析
【7月更文挑战第25天】 ERP系统中的成本管理与生产成本核算解析
1320 3
|
安全 数据挖掘 网络安全
电子商务网站建设的关键技术
移动端适配是电子商务网站建设中越来越重要的关键技术。综上所述,电子商务网站建设涉及多个关键技术,包括网站设计与用户体验、安全性、性能与可扩展性、搜索引擎优化、移动端适配以及数据分析与营销。掌握这些关键技术,企业可以建设一个安全、高效、用户…
770 0
|
关系型数据库 MySQL Serverless
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
|
SQL Java 关系型数据库
SpringBoot 系列 JPA 错误姿势之 Entity 映射
本篇为 JPA 错误使用姿势第二篇,java 的 POJO 类与数据库表结构的映射关系,除了驼峰命名映射为下划线之外,还会有什么别的坑么?
750 0
SpringBoot 系列 JPA 错误姿势之 Entity 映射
|
Ubuntu Shell Linux
Ubantu终端常用命令、快捷键和基本操作(系统性学习day2)
Ubantu终端常用命令、快捷键和基本操作(系统性学习day2)
|
安全 Linux 虚拟化
安装VMware Workstation和虚拟机教程
安装VMware Workstation和虚拟机教程
|
数据可视化 安全 定位技术
【Unity 3D】常用插件DOTween、Haste、Exploder、KGFMapSystem介绍(图文解释)
【Unity 3D】常用插件DOTween、Haste、Exploder、KGFMapSystem介绍(图文解释)
746 0