代码坏味道之一(代码中到处嵌入字符串)
看下面的一段代码:
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-
分享到:
相关推荐
在MATLAB编程中,将数值嵌入字符串是一项常见的任务,特别是在数据分析、报告生成或自定义消息输出时。本文将深入探讨如何在MATLAB中实现这一功能,并通过具体示例`ex2_60.m`来解释相关知识。 首先,MATLAB提供了两...
BSTR是微软的Automation或OLE自动化框架中定义的一种Unicode字符串格式,它包含一个头信息,存储字符串的长度,以及实际的字符串内容。由于BSTR是Unicode的,每个字符占用两个字节,这使得它能处理各种语言的字符集...
在C#编程语言中,Base64是一种用于将二进制数据编码为ASCII字符串的机制,以便在不支持二进制传输的系统(如电子邮件)中传输。Base64编码可以将任何二进制数据转换为可打印的字符,包括图片、文件和其他非文本数据...
### 向图片中写入字符串并显示图片(C#) 在C#编程中,有时我们需要将文本添加到图像中,这可能是因为要在图像上添加注释、水印或任何其他文字信息。本文将详细介绍如何实现这一功能,包括创建新图像、在图像上绘制...
在JavaScript中,可以使用模板字符串(模板字面量)来创建多行字符串,它通过反引号(`)来包围字符串,并允许在其中嵌入表达式和换行。然而,当从外部源(如文件或数据库)获取多行文本时,可能会包含不必要的换行...
模板字符串,又称模板字面量,是ES6引入的一种新型字符串表示方式,它允许我们在字符串中嵌入表达式并使用反引号(`)包裹。在Vue.js中,我们可以利用这种特性来增强模板的灵活性和可读性。 1. **模板字符串基础** ...
4. **获取字符串中的某个字符**:可以使用`.charAt()`方法来获取字符串中特定位置的字符,例如:`myStr.charAt(0)` 将返回字符串的第一个字符。 #### 三、字符串的拼接 在JavaScript中,字符串的拼接非常简单,...
在这个主题中,我们将探讨如何在C语言函数中嵌入ARM汇编代码,以实现字符串的拷贝。 首先,我们要了解ARM汇编的基本语法。ARM汇编是一种低级编程语言,用于编写针对ARM架构处理器的指令。在我们的例子中,`strCopy....
模板字符串是JavaScript中的一个重要功能,它允许开发者在字符串中嵌入表达式。模板字符串使用反引号(``)而非传统的单引号('')或双引号(" ")来定义。这种语法的引入,为字符串的拼接提供了更为直观和简洁的方式。 ...
1. **字符串隐写术**:在源码中隐藏字符串的一种方法是使用隐写术,即在代码中嵌入信息而不被轻易察觉。例如,可以将敏感字符串转换为十六进制或Base64编码,然后将其作为常量字符串插入到代码中。解码过程则在运行...
在这段代码中,最后使用`echo`语句调用`randStr(10)`来输出一个10位的随机字符串。` `标签用于换行,以便在浏览器中显示清晰的输出结果。 从这段代码中,我们可以提炼出几个关键知识点: 1. `rand()`函数:在...
8. **模板字符串**:ES6引入了模板字符串,允许在字符串中嵌入变量。例如: ```javascript var name = "Alice"; var message = `Hello, ${name}!`; console.log(message); // 输出 "Hello, Alice!" ``` 9. **...
昆仑通态MCGS嵌入式软件自带莫迪康ModBus RTU有点小问题,软件帮助里写明[4区]输出寄存器写入功能码有,06: 预置单个寄存器,16: 预置多个寄存器,实际调试没有06,安装本驱动后,可以使用功能码06.
字符串插值允许在字符串中嵌入Groovy表达式,这些表达式在字符串被处理时会被计算并替换为相应的值。插值表达式由${}包围,也可以使用$前缀直接插入表达式。 7. **内插闭包表达式的特殊情况** 在特定情况下,...
在XSL中进行字符串替换是一项常见且实用的功能。本文将详细介绍如何通过XSLT实现字符串的替换,并重点探讨两种常用的方法:使用`ms:script`(仅限于Microsoft的XML解析器)以及纯XSL模板。 ### XSL中的字符串替换 ...
在Python编程中,字符串的格式化是一个基本且重要的知识点,它涉及到将数据以特定的格式嵌入到字符串中,用于输出或存储等操作。Python提供了多种字符串格式化的方法,其中最传统且应用广泛的是使用模运算符(%)...
本文将深入探讨Delphi中的字符串、变量和指针,通过一个实例来阐述它们在实际编程中的应用。 首先,让我们了解Delphi中的字符串。在Delphi中,字符串是Unicode字符的动态数组,由系统自动管理内存。每个字符串都有...
f-string,也称为格式化字符串字面值,是Python 3.6引入的一种新特性,用于方便地在字符串中嵌入表达式。它的主要优点是简洁且易于理解。在f-string中,我们用花括号{}包围要插入的表达式,并在前面加上字母f或F。...
POWERBLUIDE11 将带有分隔符的字符串,转为SQL IN语句中需要的格式字符串;如:ABCD1234,ABCD5678 转换为 'ABCD1234','ABCD5678'然后可放直接放入IN语句中。
股票代码查询功能是许多金融网站和应用中的常见模块,它允许用户通过输入股票代码快速获取相关的股票信息。在网页中实现这样一个功能,涉及到的技术主要包括HTML、JavaScript、Ajax以及可能的API调用。以下是对这个...