tulip notes
首页
  • 学习笔记

    • 《Vue》
  • 踩坑日记

    • JavaScript
  • MQ
  • Nginx
  • IdentityServer
  • Redis
  • Linux
  • Java
  • SpringBoot
  • SpringCloud
  • MySql
  • docker
  • 算法与设计模式
  • 踩坑与提升
  • Git
  • GitHub技巧
  • Mac
  • 网络
  • 项目构建合集
  • 一些技巧
  • 面试
  • 一些杂货
  • 友情链接
  • 项目发布
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Star-Lord

希望一天成为大师的学徒
首页
  • 学习笔记

    • 《Vue》
  • 踩坑日记

    • JavaScript
  • MQ
  • Nginx
  • IdentityServer
  • Redis
  • Linux
  • Java
  • SpringBoot
  • SpringCloud
  • MySql
  • docker
  • 算法与设计模式
  • 踩坑与提升
  • Git
  • GitHub技巧
  • Mac
  • 网络
  • 项目构建合集
  • 一些技巧
  • 面试
  • 一些杂货
  • 友情链接
  • 项目发布
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 探索SpringBoot

  • 常用功能实现

  • Security认证授权

  • 扩展

  • 实战与注意事项

  • 其它

    • IDEA_SpringBoot搭建多模块项目
    • 解决IDEA创建SpringBoot项目没有Java8
    • 运行jar包相关
    • 类命名的一些建议
      • 针对Java来说
      • 参考优秀框架
        • Spring的命名规则
        • 初始化时执行的代码 -- Initializar
        • 管理某些资源时 -- Manager
        • 对某一功能的处理过程 -- Processor
        • 处理某个类型对象或 事件 -- Handler
        • 任务的执行 -- Executor
        • 对象持有某种资源 -- Holder
        • 其他
  • 《SpringBoot》笔记
  • 其它
EffectTang
2025-03-16
目录

类命名的一些建议

# 类命名的一些建议

# 针对Java来说

类的编写,首字母都需要大写。

通常来说 会有 controller层 Service层 ServiceImpl层 以及mybatis层

在Service层 我们除了要写特定业务的处理类

有时候还需要写编写“通用化的业务处理逻辑”类,或者编写一些通用组件-“一些执行器、处理器”这个时候如何命名更好呢?希望能做到其他人一看就知道,该类是公共业务处理类,或者它不是某个具体业务的处理类而是专门对某种数据进行处理的。

# 参考优秀框架

通过给类上加Tools之类的单词吗?或者加public....这些问题并非不困难,我们每个人都能想到一系列的处理方案,但问题是:有没有一个公共的标准可以参考,不然我们每个人都用自己的方式去命名,必定会带上自己的习惯,以后去看他人代码时,就相当于还是各命名各的,“好好命名”在帮助我们更好的熟悉代码上并不会起很大的作用,或者说它只对编写者自己起作用。

其实,我们也是有公共标准可以参考的,针对Java来说,我们可以参考Spring框架,它的命名规范。个人认为:优秀的产品总是会间接的制定行业的标准。因为大家都会去模仿它,希望做得比它更优秀。而下一代的标准,则会由更优秀的产品来制定。

下面我们就来简要的介绍下,Spring它是怎么进行命名的。

# Spring的命名规则

# 初始化时执行的代码 -- Initializar

对于需要在初始化时执行的代码可以使用 Initializar,比如

  • AbstractContextLoaderInitializar:该类用来初始化上下文对象的抽象类

# 管理某些资源时 -- Manager

当需要对某些资源进行管理时 可以使用 Manager

  • TransactionManager:一个用来管理事务的类

# 对某一功能的处理过程 -- Processor

含义:Processor通常指一个组件负责接收输入,对其进行某种形式的处理或转换,然后产生输出。这种命名暗示了一个数据或信息处理的步骤,强调的是对数据的加工过程。

使用场景:在Spring Batch中处理数据项的ItemProcessor就是一个典型例子,它在读取数据(由ItemReader)和写入数据(由ItemWriter)之间对每条记录进行处理。另外,在消息处理、数据转换、管道和过滤器模式中也很常见。

  • BeanPostProcessor:对Bean初始化前后的一个处理

# 处理某个类型对象或 事件 -- Handler

含义:Handler更偏向于处理事件、请求或命令,或者说要处理的是单个对象。它通常与具体的业务逻辑或响应外部事件(如HTTP请求、消息队列中的消息)紧密相关。与Processor相比,它可能包含更多的决策逻辑或状态改变操作。

使用场景:在Spring MVC中,Controller中的方法常被称为RequestHandler,它们负责处理HTTP请求并返回响应。另外,在事件驱动系统中,事件处理器(Event Handlers)响应特定事件的发生,执行相应的逻辑。

  • MessageHandler:对消息进行处理

Processor 侧重过程,而Handler 侧重某个对象或时间

# 任务的执行 -- Executor

含义:Executor通常与并发和异步执行相关,它是一种设计模式,用于解耦任务的提交与实际执行。在Java中,java.util.concurrent.Executor接口就是这一概念的体现,它定义了一个方法来执行给定的任务。

使用场景:在Spring框架中,当你需要异步执行任务时,可能会配置一个TaskExecutor(实现了Executor接口)。这在需要后台处理、提高系统响应性或管理大量并行任务时非常有用。

  • Processor侧重于数据或信息的处理与转换,关注点在于转换逻辑本身。
  • Handler倾向于处理事件、请求,与业务逻辑紧密结合,可能涉及状态变化或决策逻辑。
  • Executor则专注于任务的调度与执行,特别是异步和并发执行,提供了任务执行的基础设施。

# 对象持有某种资源 -- Holder

该对象持有某种先前定义的组件或者资源,可以用Holder表示

  • BeanDefinitionHolder:该类就存放了BeanDefinition对象

# 其他

拦截器:Interceptor

支持类:Support

工厂类:Factory

适配器:Adapter

上次更新: 2025/04/23, 16:23:16
运行jar包相关

← 运行jar包相关

最近更新
01
面向切面跟自定义注解的结合
05-22
02
时间跟其他数据的序列化
05-19
03
数据加密与安全
05-17
更多文章>
Theme by Vdoing | Copyright © 2023-2025 EffectTang
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式