类命名的一些建议
# 类命名的一些建议
# 针对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