java 平台建立了一整套很好的命名惯例
- 大致分为字面的、语法的两种
字面的惯例比较少:涉及包、类、接口、域、方法、类型变量等,尽量不要违反这些惯例
- api 违反了这些惯例,使用起来很困难
- 实现类违反了,很难以维护
一旦违反,会给其他程序员带来很大的困扰
包:
- 包的名称是层次状的 com.em.tool.ds.controller
- 均小写、以组织开头
- java、javax 属于例外(自己绝不要以这俩开头)
- 包的组成部分简短处理,比如使用util 而不是utility
- java 没有提供包层次的支持,但是有些包还是包含丰富的包层次
类和接口(包括枚举和注解类型):
- 首字母大写
- 尽量避免使用缩写
- 驼峰式命名习惯
方法和域的名称:
- 参考类和接口
- 首字母小写
常量域(唯一例外):
- 一个或多个纯大写字母,带下划线组成
- 常量域是静态 final 域
- 枚举类型是常量域
- 被引用类型不可变,也可以是个常量域
- 常量域是唯一推荐使用下划线的情形
局部变量(与成员名称类似):
- 允许缩写、单个字符、短字符都是允许的
类型参数:
- 单字母组成
- T 代表任意类型
- E 代表集合中的元素类型
- K、V 代表映射的键和值类型
- T、T1、T2 ...
语法命名规则比字面量更加灵活,更加争议
- 包没有语法命名惯例
- 类和接口使用单词或短语(接口常加 able、ible代表一种能力)
- 方法:getter、setter、generate、size、toString、newInstance、isTable、hasTable 等等
- 域名,用名词就好 height、baoyStyle 等等
好的命名习惯,大大增强了程序的可读性,非常值得遵守