← 返回目录

(二) 常量定义

第 2 / 27 卷作者:guanbao yang日期:

与接口区别。

正例:CacheServiceImpl 实现 CacheService 接口。

2)【推荐】如果是形容能力的接口名称,取对应的形容词为接口名(通常是 –able 结尾的形容词)。

正例:AbstractTranslator 实现 Translatable。

18.【参考】枚举类名带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。

说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。

正例:枚举名字为 ProcessStatusEnum 的成员名称:SUCCESS / UNKNOWN_REASON

19.【参考】各层命名规约:

A)Service / DAO 层方法命名规约:

1)获取单个对象的方法用 get 做前缀。

2)获取多个对象的方法用 list 做前缀,复数结尾,如:listObjects 3)获取统计值的方法用 count 做前缀。

4)插入的方法用 save / insert 做前缀。

5)删除的方法用 remove / delete 做前缀。

6)修改的方法用 update做前缀。

B)领域模型命名规约:

1)数据对象:xxxDO,xxx 即为数据表名。

2)数据传输对象:xxxDTO,xxx 为业务领域相关的名称。

3)展示对象:xxxVO,xxx 一般为网页名称。

4)POJO 是 DO / DTO / BO / VO 的统称,禁止命名成 xxxPOJO。

(二) 常量定义

1.【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。

反例:

// 开发者 A 定义了缓存的 key。

String key = "Id#taobao_" + tradeId;

cache.put(key, value);

// 开发者 B 使用缓存时直接复制少了下划线,即 key 是"Id#taobao" + tradeId,导致出现故障。

String key = "Id#taobao" + tradeId;

cache.get(key);

2.【强制】long 或 Long 赋值时,数值后使用大写 L,不能是小写 l,小写容易跟数字混淆,造成误解。

说明:public static final Long NUM = 2l; 写的是数字的 21,还是 Long 型的 2?

3.【强制】浮点数类型的数值后缀统一为大写的 D或 F。

正例:public static final double HEIGHT = 175.5D;

public static final float WEIGHT = 150.3F;

4.【推荐】不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。

说明:大而全的常量类,杂乱无章,使用查找功能才能定位到要修改的常量,不利于理解,也不利于维护。

正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 SystemConfigConsts 下。

5.【推荐】常量的复用层次有五层:跨应用共享常量、应用内共享常量、子工程内共享常量、包内共享常量、类内共享常量。

全站分卷索引 · 27 卷
  1. 1一、编程规约
  2. 2(二) 常量定义
  3. 3(三) 代码格式
  4. 4(四) OOP规约
  5. 5(五) 日期时间
  6. 6(六) 集合处理
  7. 7(七) 并发处理
  8. 8(八) 控制语句
  9. 9(九) 注释规约
  10. 10(十) 前后端规约
  11. 11(十一) 其他
  12. 12二、异常日志
  13. 13(二) 异常处理
  14. 14(三) 日志规约
  15. 15三、单元测试
  16. 16四、安全规约
  17. 17五、MySQL数据库
  18. 18(二) 索引规约
  19. 19(三) SQL语句
  20. 20(四) ORM映射
  21. 21六、工程结构
  22. 22(二) 二方库依赖
  23. 23(三) 服务器
  24. 24七、设计规约
  25. 25附1:版本历史
  26. 26附2:专有名词解释
  27. 27附3:错误码列表