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

news2025/1/9 4:43:47

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.coloradmin.cn/o/2273565.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity学习14:unity里的C#脚本的几个基本生命周期方法, 脚本次序order等

目录 1 初始的C# 脚本 1.1 初始的C# 脚本 1.2 创建时2个默认的方法 2 常用的几个生命周期方法 2.1 脚本的生命周期 2.1.1 其中FixedUpdate 方法 的时间间隔,是在这设置的 2.2 c#的基本语法别搞混 2.2.1 基本的语法 2.2.2 内置的方法名,要求更严…

网站常用功能模块-鉴权

一:JWT是什么? 常用鉴权方式有很多种,今天主要介绍基于token的鉴权方式JWT(Json JSON Web Token)。因为这种方式实现起来方便快捷。整体实现逻辑如下 第一次登陆时,前端携带账号和密码请求登录接口。服务…

Tableau数据可视化与仪表盘搭建-数据连接

目录 连接本地文件 课程操作 连接方式(实时/数据提取) 保存工作簿 筛选器 数据处理 连接数据有三种类型 第一种,连接到本地文件,例如Excel,csv,JSON等 第二种,连接到数据库,例…

AI人工智能大数据技术解锁竞彩足球分析软件准确率的密钥

AI 人工智能大数据技术解锁竞彩足球分析软件准确率的密钥 在信息爆炸的时代,竞彩足球愈发风靡,球迷们不再满足于单纯观赛,更渴望凭借精准预测,投身这场数字与激情交织的博弈。而大数据、人工智能技术催生出的专业软件,…

基于物联网疫苗冷链物流监测系统设计

1. 项目开发背景 随着全球对疫苗运输要求的提高,特别是针对温度敏感型药品(如疫苗)的冷链管理,如何保证疫苗在运输过程中的温度、湿度、震动等环境因素的稳定性已成为亟需解决的问题。疫苗运输过程中,任何温度或湿度的…

深入浅出Node.js-1(node.js入门)

全新专栏带你快速掌握node.js Node.js入门 html,css,js 30年了 nodejs环境 09年出现 15年 nodejs为我们解决了2个方面的问题: 【锦上添花】让我们前端工程师拥有了后端开发能力(开接口,访问数据库) - 大公司BFF(5…

【线性代数】通俗理解特征向量与特征值

这一块在线性代数中属于重点且较难理解的内容,下面仅个人学习过程中的体会,错误之处欢迎指出,有更简洁易懂的理解方式也欢迎留言学习。 文章目录 概念计算几何直观理解意义 概念 矩阵本身就是一个线性变换,对一个空间中的向量应用…

Java-JVM详解

Java-JVM ①JVM概述 ❶基本介绍 JVM:全称 Java Virtual Machine,一个虚拟计算机,Java 程序的运行环境(Java二进制字节码的运行环境) 特点: Java 虚拟机基于二进制字节码执行,由一套字节码指…

【网络协议】开放式最短路径优先协议OSPF详解(三)

前言 在第一部分和第二部分,我们了解了OSPF操作背后的概念。在第三部分,我们将讨论多区域OSPF。我们将了解它与单区域OSPF的不同,并探讨其操作背后的各种概念。 【网络协议】开放式最短路径优先协议OSPF详解(一) 【…

【C语言】_指针与数组

目录 1. 数组名的含义 1.1 数组名与数组首元素的地址的联系 1.3 数组名与首元素地址相异的情况 2. 使用指针访问数组 3. 一维数组传参的本质 3.1 代码示例1:函数体内计算sz(sz不作实参传递) 3.2 代码示例2:sz作为实参传递 3…

android开发从入门进阶到高级学习资料集合

本文精心整理了Android开发相关的学习资料,涵盖入门、进阶、性能优化、博客、面试和书籍等多个维度,在这里分享给大家,欢迎收藏。 技术社区 开源中国 OSCHINA是国内顶尖的开源技术社区之一,自2008年成立以来,已汇聚超…

腾讯云更改用户为root

最近买了台99元一年的2核的云服务器,方便学习一些java开发中间件,以及部署一些项目。 1.设置root用户密码 sudo passwd root 2.修改配置文件 ll /etc | grep ssh cd /etc/ssh/ ls vim sshd_config 输入/PasswordAuthentication 寻找 输入:set nu 再按下…

联发科MTK6771/MT6771安卓核心板规格参数介绍

MT6771,也被称为Helio P60,是联发科技(MediaTek)推出的一款中央处理器(CPU)芯片,可运行 android9.0 操作系统的 4G AI 安卓智能模块。MT6771芯片采用了12纳米工艺制造,拥有八个ARM Cortex-A73和Cortex-A53核心,主频分别…

Milvus×全诊通:从导诊到智能超声,如何将人效比翻倍

AI与智慧医疗的结合已是未来发展的必然趋势。近年来,国家卫健委推崇智慧医疗和AI技术,如智能导诊、预问诊、辅助诊断等,以提高医疗服务效率和诊断准确性,改善患者就医体验。 全诊通是一家专注于医疗SaaS和人工智能的公司&#xff…

C#使用MVC框架创建WebApi服务接口

第一步,使用VS2019新建MVC-Web API应用程序 创建BridgeApi 第二步,运行将生成默认的示例网页,网页Url为 https://localhost:44361/home/index 右键 项目 添加 WebAPI控制器类 添加 我们可以看到App_Start目录下 有三个文件: BundleConfig.cs代表 捆绑文件的引用 有脚本文件…

跨年烟花C++代码

嘿&#xff0c;朋友们&#xff01;今天来给大家讲讲一段挺有意思的C代码呀&#xff0c;这段代码主要是用来实现一个烟花效果展示的程序哦&#xff0c;下面咱们一点点来看哈。 效果 1. 开头包含的那些头文件 #include <graphics.h> #include <conio.h> #include &…

Unity 2d描边基于SpriteRender,高性能的描边解决方案

目标 以Unity默认渲染管线为例&#xff0c;打造不需要图片内边距&#xff0c;描边平滑&#xff0c;高性能的描边解决方案 前言 在2d游戏中经常需要给2d对象添加描边&#xff0c;来突出强调2d对象 当你去网上查找2d描边shader&#xff0c;移植到项目里面&#xff0c;大概率会…

自动驾驶相关知识学习笔记

一、概要 因为想知道SIL、HIL是什么仿真工具&#xff0c;故而浏览了自动驾驶相关的知识。 资料来源《自动驾驶——人工智能理论与实践》胡波 林青 陈强 著&#xff1b;出版时间&#xff1a;2023年3月 二、图像的分类、分割与检测任务区别 如图所示&#xff0c;这些更高阶的…

“深入浅出”系列之FFmpeg:(1)音视频开发基础

我的音视频开发大部分内容是跟着雷霄骅大佬学习的&#xff0c;所以笔记也是跟雷老师的博客写的。 一、音视频相关的基础知识 首先播放一个视频文件的流程如下所示&#xff1a; FFmpeg的作用就是将H.264格式的数据转换成YUV格式的数据&#xff0c;然后SDL将YUV显示到电脑屏幕上…

日志服务 SQL 引擎全新升级

作者&#xff1a;戴志勇、顾汉杰&#xff08;执少&#xff09; SQL 作为 SLS 基础功能&#xff0c;每天承载了用户大量日志数据的分析请求&#xff0c;既有小数据量的快速查询&#xff08;如告警、即席查询等&#xff09;&#xff1b;也有上万亿数据规模的报表级分析。SLS 作为…