打字猴:1.700445957e+09
1700445957 编写高质量代码:改善Java程序的151个建议 [:1700438156]
1700445958 编写高质量代码:改善Java程序的151个建议 建议84:使用构造函数协助描述枚举项
1700445959
1700445960 一般来说,我们经常使用的枚举项只有一个属性,即排序号,其默认值是从0、1、2……这一点我们非常熟悉。但是除了排序号外,枚举还有一个(或多个)属性:枚举描述,它的含义是通过枚举的构造函数,声明每个枚举项(也就是枚举的实例)必须具有的属性和行为,这是对枚举项的描述或补充,目的是使枚举项表述的意义更加清晰准确。例如有这样的一段代码:
1700445961
1700445962 enum Season{
1700445963
1700445964 Spring(“春”),Summer(“夏”),Autumn(“秋”),Winter(“冬”);
1700445965
1700445966 private String desc;
1700445967
1700445968 Season(String_desc){
1700445969
1700445970 desc=_desc;
1700445971
1700445972 }
1700445973
1700445974 //获得枚举描述
1700445975
1700445976 public String getDesc(){
1700445977
1700445978 return desc;
1700445979
1700445980 }
1700445981
1700445982 }
1700445983
1700445984 其枚举项是英文的,描述是中文的,如此设计使其表述的意义更加精确,方便了多个协作者共同引用该常量。若不考虑描述的使用(即访问getDesc方法),它与如下接口定义的描述则很相似:
1700445985
1700445986 interface Season{
1700445987
1700445988 //春
1700445989
1700445990 int Spring=0;
1700445991
1700445992 //夏
1700445993
1700445994 int Summer=1;
1700445995
1700445996 /*……*/
1700445997
1700445998 }
1700445999
1700446000 比较两段代码,很容易看出使用枚举项描述是一个很好的解决方案,非常简单、清晰。因为是一个描述(Description),那我们在开发时就可以赋予更多的含义了,比如可以通过枚举构造函数声明业务值,定义可选项,添加属性等,看如下代码:
1700446001
1700446002 enum Role{
1700446003
1700446004 Admin(“管理员”,new Lifetime(),new Scope()),
1700446005
1700446006 User(“普通用户”,new Lifetime(),new Scope());
[ 上一页 ]  [ :1.700445957e+09 ]  [ 下一页 ]