首页 > 编程语言 >java 命名推荐

java 命名推荐

时间:2023-04-17 14:37:08浏览次数:28  
标签:java 前缀 后缀 推荐 大写 单词 命名 方法

一、Java中的命名规范

好的命名能体现出代码的特征,含义或者是用途,让阅读者可以根据名称的含义快速厘清程序的脉络。不同语言中采用的命名形式大相径庭,Java中常用到的命名形式共有三种,既首字母大写的UpperCamelCase,首字母小写的lowerCamelCase以及全部大写的并用下划线分割单词的UPPER_CAMEL_UNSER_SCORE。通常约定,类一般采用大驼峰命名,方法和局部变量使用小驼峰命名,而大写下划线命名通常是常量和枚举中使用。

类型 约束
项目名 全部小写,多个单词用中划线分隔‘-’ spring-cloud
包名 全部小写 com.alibaba.fastjson
类名 单词首字母大写 Feature
变量名 首字母小写,多个单词组成时,除首个单词,其他单词首字母都要大写 userName,password
常量名 全部大写,多个单词,用‘-’分隔 CACHE_EXPIRED_TIME
方法名 首字母小写,多个单词组成时,除首个单词,其他单词首字母都要大写 read(),readObj()

二、包命名

包名统一使用小写点分隔符之间有且仅有一个自然语义的英文单词或者多个单词自然连接到一块(如 springframework,deepspace不需要使用任何分割)。包名统一使用单数形式,如果类命有复数含义,则可以使用复数形式。

包名的构成可以分为以下几四部分【前缀】 【发起者名】【项目名】【模块名】

三、类命名

类名使用大驼峰命名形式,类命通常时名词或名词短语,接口名除了用名词和名词短语以外,还可以使用形容词或形容词短语,如Cloneable,Callable等,表示实现该接口的类有某种功能或能力。对于测试类则以它要测试的类开头,以Test结尾,如HashMapTest。

对于一些特殊特有名词缩写也可以使用全大写命名,比如XMLHttpRequest,不过笔者认为缩写三个字母以内都大写,超过三个字母则按照要给单词算。这个没有标准如阿里巴巴中fastjson用JSONObject作为类命,而google则使用JsonObjectRequest命名,对于这种特殊的缩写,原则是统一就好。

属性 约束
抽象类 Abstract或者Base开头 BaseUserService,AbstractTraceInterceptor
枚举类 Enum 作为后缀 GenderEnum
工具类 Utils 作为后缀 StringUtils
异常类 Exception 作为后缀 CustomerException
接口实现类 接口名+Impl UserServiceImpl
领域模型相关 /DO/DTO/VO/DAO UserDAO,UserDTO
设计模式相关 Builder,Factory,Template ThreadFactory,redisTemplate
测试类 Test 作为后缀 UserServiceTest,表示是测试类
MVC分层 Controller,Service,ServiceImpl,DAO作为后缀 UserController
处理特定功能 Handler,Predicate,Validator 表示处理器,校验器

四、方法

方法命名采用小驼峰的形式,首字小写,往后的每个单词首字母都要大写。 和类名不同的是,方法命名一般为动词或动词短语,与参数或参数名共同组成动宾短语,即动词 + 名词。一个好的函数名一般能通过名字直接获知该函数实现什么样的功能。

 

4.1 返回真伪值的方法

位置 单词 意义
前缀 is 对象是否符合期待的状态 isVaild
前缀 can 对象是否能执行所期待的动作 canRemove
前缀 should 调用方法执行某个命令或方法,好还是不会,应不应该 shouldMigrate
前缀 has 是否持有所期待的对象 hasObservers
前缀 needs 调用方,是否需要执行某个方法或者命令 needsMigrate

 

4.2 用来检查的方法

单词 意义
ensure 检查是否为期待的状态,不是则抛出异常或者返回error code ensureCapactiy
validate 检查是否为正确状态 validateParams
check 检查是否为期待状态 checkInput

 

4.3 按需求才执行的方法

位置 单词 意义  
后缀 IfNeeded 需要的时候执行,不需要的时候什么都不做 drawIfNeeded
前缀 might 同上 mightCreate
前缀 try 尝试执行 tryCreate
后缀 OrDefault 尝试执行,失败时返回默认值 getOrDefault
后缀 OrElse 尝试执行,失败时返回实际参数中指定的值 getOrElse
前缀 force 强制执行 forceCreate,forceStop

 

4.4 异步相关方法

位置 单词 意义
前缀 blocking 线程阻塞方法 blockingGetUser
后缀 InBackground 在后台执行 doInBackground
后缀 Async 异步执行方法 sendASync
后缀 Sync 同步执行方法 sendSync
前缀 or 单独 schedule Job和Task放入队列 scheule,scheuleJob
前缀 or 单独 post 同上 postJob
前缀 or 单独 execute 执行任务 execute,executeTask
前缀 or 单独 start 同上 start,startJob
前缀 or 单独 cancel 停止任务 cancel,cancelJob
前缀 or 单独 stop 同上 stop,stopJob

 

4.5 回调方法

位置 单词 意义
前缀 on 事件发生时执行 onCompleted
前缀 before 事件发生之前执行 beforeUpdate
前缀 pre 同上 preUpdate
前缀 will 同上 willUpdate
前缀 after 事件发生之后执行 afterUpdate
前缀 post 同上 postUpdate
前缀 did 同上 didUpdate
前缀 should 确认事件是否可以发送执行 shouldUpdate

 

4.6 操作对象生命周期的方法

单词 意义
init 初始化 init
pause 暂停 onPause,pause
stop 停止 onStop,stop
abandon 销毁,禁止 abandon
destroy 销毁 destroy
dispose 同上 dispose

 

4.7 与集合操作相关的方法

单词 意义
contains 是否持有指定对象 contains
add 添加 addJob
append 追加 appendJob
insert 插入 insertJob
put 添加 putJob
remove 删除 removeJob
enqueue 添加到列队 enqueueJob
dequeue 从队列移除 dequeueJob
push 添加到栈 pushJob
pop 从栈移除 popJob
peek 从栈头取出但不移除 peekJob
find 寻找 findById

 

4.8 与数据相关的方法

单词 意义
create 新创建 createAccount
from 从什么读取 fromConfig
to 转换 toString
update 更新 updateAccount
load 加载 loadConfig
fetch 远程读取 fetchConfig
delete 删除 deleteAccount
remove 删除 removeAccount
save 保存 saveAccount
commit 提交 commitChange
clear 清除 clearCache

 

4.9 成对出现的动词

单词 意义
get 获取 set 设置
add 增加 remove 删除
create 创建 destory 移除
start 启动 stop 停止
open 打开 close 关闭
read 读取 write 写入
load 载入 save 保存
begin 开始 end 结束
import 导入 export 导出
bind 绑定 unbind 解绑
split 分割 merge 合并
   
view 查看 browse 浏览
edit 编辑 modify 修改
select 选取 mark 标记
copy 复制 paste 粘贴
undo 撤销 redo 重做
insert 插入 delete 删除
add 加入 append 添加
clear 清除  
index 索引 sort 排序
find 查找 search 搜索
increase 增加 decrease 减少
play 播放 pause 暂停
   
launch 启动 run 运行
compile 编译 execute 执行
debug 调试 trace 跟踪
observe 观察 listen 监听
build 构建 publish 发布
input 输入 output 输出
encode 编码 decode 解码
compress 压缩 decompress 解压缩
pack 打包 unpack
parse 解析 emit 生成
connect 连接 disconnect 断开连接
send 发送 receive 接收
   
downlaod 下载 upload 上传
refresh 刷新 synchronize 同步
update 更新 revert 复原
lock 锁定 unlock 解锁
checkOut 签出 checkIn 签入
submit 提交 commit 提交
push 推 pull 拉
expand 展开 collapse 折叠
begin开始 end 结束
start 开始 finish 完成
enter 进入 exit 退出
abort 放弃 quit 离开

 

通用命名规则

  1. 尽量不要使用拼音;杜绝拼音和英文混用。对于一些通用的表示或者难以用英文描述的可以采用拼音,一旦采用拼音就坚决不能和英文混用。
    正例: BeiJing, HangZhou
    反例: validateCanShu
  2. 命名过程中尽量不要出现特殊的字符,常量除外。
  3. 尽量不要和jdk或者框架中已存在的类重名,也不能使用java中的关键字命名。
  4. 妙用介词,如for(可以用同音的4代替), to(可用同音的2代替), from, with,of等。
    如类名采用User4RedisDO,方法名getUserInfoFromRedis,convertJson2Map等

标签:java,前缀,后缀,推荐,大写,单词,命名,方法
From: https://www.cnblogs.com/jack1990/p/17325320.html

相关文章

  • python s12 day13 JavaScript、Dom和jQuery
    1.JavaScriptJavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理。1、JavaScript代码存在形式<!--方式一--><scripttype"text/javascript"src="JS文件"></script>......
  • Java 4种校验注解(值校验、范围校验、长度校验、格式校验)
    1Maven依赖<!--第一种方式导入校验依赖--><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>2.0.1.Final</version></dependency><!--第二种方式导入校验......
  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</version></dependency><dependency......
  • Java开发笔记13(树的结构修改记录)
    1.Controller:/***区域树生成*/@GetMapping("/list")privateResultregionTree(){Stationstation=getStation(getUser());StringstationCode=station.getStationTelecode();List<NewTreeVo>tree=stationInfRelaService.regionTree(stat......
  • 文件批量重命名高手,将文件批量复制到新建文件夹中并先删除文件夹中的原文件
    最近有很多朋友在问,如何复制文件,比如复制前先删除目标目录中的文件夹,该如何操作呢?不知道怎么办的宝贝们,下面请随小编一起来试试。所需工具安装一个文件批量改名高手文件素材若干操作步骤步骤1:运行【文件批量改名高手】,在“文件智能管理箱”版块的“文件批量复制工具”中,先导入文件......
  • Java中线程的常用操作-后台线程、自定义线程工厂ThreadFactpry、join加入一个线程、线
    场景Java中Thread类的常用API以及使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126596884上面讲了Thread的常用API,下面记录下线程的一些常用操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现后台线程后台线程,是指运行时在后台提供的一......
  • 【迭代器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介迭代器模式(IteratorPattern),是一种结构型设计模式。给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示。迭代器模式是与集合共存的,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像Java中的Collection,List、Set、Map等,这些集合都有自......
  • SQL Pretty Printer(V4.0.0)推荐插件
    SQLPrettyPrinter(V4.0.0)推荐插件安装在SQLServer中我们经常需要编写各种SQL脚本,例如存储过程和函数等,由于在编写过程中,经常会进行调整,格式很乱,可读性很差。对于有强迫症的人来说,看这样的代码非常痛苦,必须要手动对代码进行格式化,如果代码脚本比较多,这个事情也是非常费时费力的。......
  • 编程中最难的就是命名?这几招教你快速上手
    前言本文转载于阿里开发者公众号,具体详见:编程中最难的就是命名?这几招教你快速上手正文 你可不能像给狗狗取名字那样给类、方法、变量命名。仅仅因为它很可爱或者听上去不错。在写代码的时候,你要经常想着,那个最终维护你代码的人可能将是一个有暴力倾向的疯子,并且他还知道你住......
  • java json 四个格式
    java官方<dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20220320</version></dependency>codeJSONObjectjsonObject=newJSONObject();jsonObject.put("secretKey......