浏览 1628 次
锁定老帖子 主题:代码坏味道之一(代码中到处嵌入字符串)
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-15
代码坏味道之一(代码中到处嵌入字符串)
看下面的一段代码:
String type = form.getString("type","XZ"); //....... if("XZ".equals(type)){ ActionContext.setRequestAttribute("applyTypeName","****"); }else if("XG".equals(type)){ ActionContext.setRequestAttribute("applyTypeName","*****"); }else if("SQ".equals(type)){ ActionContext.setRequestAttribute("applyTypeName","*****"); }else{ ActionContext.setRequestAttribute("applyTypeName",type); }
别人来看着这段代码,很难理解他是什么意图。 在代码中到处嵌入字符串是很不好的习惯,一个原因是,如果字符串所代表的意义不清晰的话,将很难理解这样的的代码。另外,当字符串出现多次在代码中时,如果你不得不修改它的话,你将要改变另外一处的代码,这样工作量就大了,如果漏改了一些地方,将在代码中引入缺陷。
最起码是要定义一个字符串常量来替代字符串。这样才比较好理解 /** 申请单类型:权限申请 */ private final String APPLY_TYPE_SQ = "SQ"; /** 申请单类型:新增方案 */ private final String APPLY_TYPE_XZ = "XZ"; /** 申请单类型:修改 方案 */ private final String APPLY_TYPE_XG = "XG";
如果这些字符串常量需要别的地方应用,就将它移到一个常量定义文件中(一般在Constants类/接口中)。
这样使代码的意图更加明确了,如果常量名能很好的表达意图的话就更好了。
-EOF-
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-15
tivan 写道
/** 申请单类型:权限申请 */ private final String APPLY_TYPE_SQ = "SQ"; /** 申请单类型:新增方案 */ private final String APPLY_TYPE_XZ = "XZ"; /** 申请单类型:修改 方案 */ private final String APPLY_TYPE_XG = "XG"; 如果常量名能很好的表达意图的话就更好了。
说都说到这里了,那你就再努力一把,把常量名起起好呗。 勿以恶小而为之 勿以善小而不为 |
|
返回顶楼 | |
发表时间:2010-11-16
看不出来楼主如此定义有何有。。。
跟原来的代码有差别么? |
|
返回顶楼 | |