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
目录
相关文章
|
11天前
|
存储 分布式计算 监控
Java一分钟之-Hazelcast:内存数据网格
【6月更文挑战第17天】**Hazelcast是开源的内存数据网格(IMDG),加速分布式环境中的数据访问,提供内存存储、分布式计算、线性扩展及高可用性。常见挑战包括内存管理、网络分区和数据分布不均。通过配置内存限制、优化网络和分区策略可避免问题。示例展示如何创建Hazelcast实例并使用分布式Map。使用Hazelcast提升性能和扩展性,关键在于理解和调优。**
28 1
|
14天前
|
缓存 NoSQL Java
Java高并发实战:利用线程池和Redis实现高效数据入库
Java高并发实战:利用线程池和Redis实现高效数据入库
34 0
|
2天前
|
Java
使用kafka-clients操作数据(java)
使用kafka-clients操作数据(java)
13 6
|
2天前
|
算法 搜索推荐 Java
Java插入排序:优雅整理数据的艺术
Java插入排序:优雅整理数据的艺术
|
3天前
|
Java
Java树状结构数据构建(基于hutool)
Java树状结构数据构建(基于hutool)
13 2
|
11天前
|
Java
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
在 Java 中,类是一种定义对象的模板,它包含数据成员(字段)和方法。
|
15天前
|
JSON Java 数据格式
java读取接口返回的json数据 (二)
java读取接口返回的json数据 (二)
21 5
|
15天前
|
JSON Java 数据格式
java读取接口返回的json数据
java读取接口返回的json数据
23 5
|
2天前
|
XML Java 定位技术
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
详尽分享经纬坐标(BLH)数据创建.kml文件小工具设计Java版
|
3天前
|
JSON JavaScript Java
如何在Java中处理JSON数据?
如何在Java中处理JSON数据?