当前位置: 首页 > news >正文

企业级Java 实体对象类定义规范

1. 查询参数类 (Query)

  • 命名规则: xxxQuery.java
  • 用途: 用于封装查询操作的请求参数,通常包含分页、过滤、排序等字段。与数据库查询或 API 请求紧密相关。
  • 示例: ProductQuery.javaUserQuery.java
  • 使用场景: 查询条件的封装,发送查询请求时使用。

2. 返回参数类 (VO)

  • 命名规则: xxxVo.java (VO = View Object)
  • 用途: 用于返回给前端的数据显示对象,通常包括展示所需的字段,可能会对数据进行格式化或者转换。与数据库对象和 DTO 对象存在差异,专注于展示层的数据结构。
  • 示例: ProductVo.javaUserVo.java
  • 使用场景: 前端展示数据时,直接作为返回结果。

3. 数据传输对象类 (DTO)

  • 命名规则: xxxDTO.java (DTO = Data Transfer Object)
  • 用途: 用于不同层之间传递数据的对象,通常用于服务层之间的数据传输。DTO 可能包含比 VO 更复杂的业务数据,并且可以进行序列化,传递的过程中可能涉及到字段的合并或分割。
  • 示例: ProductDTO.javaOrderDTO.java
  • 使用场景: 服务层或 API 层之间传递数据,通常包含业务相关数据。

4. 数据库对象类 (PO)

  • 命名规则: xxxPO.java (PO = Persistent Object)
  • 用途: 与数据库表结构一一对应,表示数据持久化层的对象。PO 主要用于与数据库进行交互,映射数据库表中的字段,通常只用于持久化操作。
  • 示例: ProductPO.javaUserPO.java
  • 使用场景: 用于数据库的增、删、改、查操作中,直接与数据库进行交互。

5. 信息类 (Info)

  • 命名规则: xxxInfo.java
  • 用途: 用于封装某个业务实体或对象的详细信息,通常包含多个维度的描述性信息,不直接与数据库交互,也不直接用于展示。它通常比 VODTO 更全面,涵盖了更多的业务上下文和业务逻辑。
  • 示例: ProductInfo.javaOrderInfo.java
  • 使用场景: 描述某个对象或业务实体的详细信息,可能用于业务逻辑层中的处理,或用于为展示层提供数据支持。

6. 服务层对象类 (Service)

  • 命名规则: xxxService.java
  • 用途: 封装业务逻辑的服务层对象,提供对外的 API 接口,通常负责调用 DAO 层(持久化层)以及其他业务逻辑处理。Service 类通常包含复杂的业务操作。
  • 示例: ProductService.javaUserService.java
  • 使用场景: 业务逻辑处理和服务接口暴露,协调多个业务模块。

7. 控制器类 (Controller)

  • 命名规则: xxxController.java
  • 用途: 用于处理 HTTP 请求,负责接收前端请求并调用服务层处理业务逻辑,最后将结果返回给客户端。通常会涉及到数据验证、权限控制等功能。
  • 示例: ProductController.javaUserController.java
  • 使用场景: 接收前端请求并将其交给服务层处理,返回相应结果。

8. 异常类 (Exception)

  • 命名规则: xxxException.java
  • 用途: 用于捕捉和处理特定业务场景下的异常,帮助业务流程的控制和错误处理。
  • 示例: ProductNotFoundException.javaUserUnauthorizedException.java
  • 使用场景: 处理与业务相关的特定异常,确保程序的健壮性和错误的精确捕捉。

命名规范总结表

类名后缀用途示例
Query查询参数类ProductQuery.java, UserQuery.java
Vo返回数据类(View Object)ProductVo.java, UserVo.java
DTO数据传输对象(Data Transfer Object)ProductDTO.java, OrderDTO.java
PO数据库对象(Persistent Object)ProductPO.java, UserPO.java
Info信息类(详细描述对象)ProductInfo.java, OrderInfo.java
Service服务类(业务逻辑类)ProductService.java, UserService.java
Controller控制器类(处理请求的类)ProductController.java, UserController.java
Exception异常类(业务异常类)ProductNotFoundException.java, UserUnauthorizedException.java

实际应用示例

假设有一个电子商务系统的产品模块,相关的 Java 类可能会按以下方式组织:

  • 查询参数类ProductQuery.java — 用于封装查询条件,如产品分类、价格范围、品牌等。
  • 返回数据类ProductVo.java — 返回给前端展示的产品信息,如名称、图片、价格等。
  • 数据传输对象ProductDTO.java — 用于服务层之间传输产品数据,可能包含了产品的描述、价格、库存等信息。
  • 数据库对象类ProductPO.java — 与产品数据库表一一对应,包含数据库表的字段。
  • 信息类ProductInfo.java — 描述产品的详细信息,可能包括产品的属性、图片、评论、推荐等信息。
  • 服务类ProductService.java — 处理产品相关的业务逻辑,如添加、删除、更新产品等。
  • 控制器类ProductController.java — 接收前端请求,调用 ProductService 进行业务处理,并将结果返回给前端。
  • 异常类ProductNotFoundException.java — 用于处理找不到产品的异常。

规范命名,不仅能确保类的职责清晰,还能够帮助团队成员在维护项目时快速理解各类对象的用途和功能。

http://www.lryc.cn/news/517283.html

相关文章:

  • 【网络云SRE运维开发】2025第2周-每日【2025/01/07】小测-【第7章 GVRP链路捆绑】理论和实操
  • 蓝桥杯算法|练习记录
  • C语言 扫雷程序设计
  • CSS语言的文件操作
  • 前端-计算机网络篇
  • 行为分析:LSTM、3D CNN、SlowFast Networks。这三者的优缺点
  • 【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起
  • STM32-WWDG/IWDG看门狗
  • 基于视觉惯性 SLAM(VSLAM)、相机和 IMU 数据的融合执行 6 自由度位姿跟踪
  • Matlab仿真径向受压圆盘光弹图像
  • 网络安全抓包
  • WebSocket 测试调试:工具与实践
  • ArmSoM RK3588/RK3576核心板,开发板网络设置
  • 【学Rust开发CAD】1 环境搭建
  • 数据结构与算法之二叉树: LeetCode 108. 将有序数组转换为二叉搜索树 (Ts版)
  • Java 多线程之@Async
  • 代码随想录day38 动态规划6
  • LabVIEW无标题的模态VI窗口的白框怎么去除?
  • iOS - 原子操作
  • Go语言的语法
  • 【MySQL 保姆级教学】用户管理和数据库权限(16)
  • 什么是 ES6 “模板语法” ?
  • [项目实战2]贪吃蛇游戏
  • 关于FPGA中添加FIR IP核(采用了GOWIN EDA)
  • 1. 使用springboot做一个音乐播放器软件项目【前期规划】
  • 【Dify】Dify自定义模型设置 | 对接DMXAPI使用打折 Openai GPT 或 Claude3.5系列模型方法详解
  • 【Rust自学】10.8. 生命周期 Pt.4:方法定义中的生命周期标注与静态生命周期
  • 121 买入股票的最佳时机
  • PID学习资料
  • 采用标准化的方式开展设计-研发中运用设计模式