前几天,我看到一个请求请求,该请求在未修改字符串的函数中将字符串作为参数。取而代之的是,该字符串用于在函数执行功能之间进行切换。
与创建getNewTableVersion
/ getOldTableVersion
之类的单独函数以省略tableType
参数相比,以这种方式进行操作有何利弊?
public static String getTableVersion(String prefix, String tableVersion, String tableType) {
String[] tableVersions = tableVersion.split(prefix);
Integer version;
switch (tableType) {
case "new":
// set version to newer one
case "old":
// set version to older one
default:
// default functionality
}
return prefix + version.toString();
}
记录下来,我认为这是一种不良做法。我认为,凭着一系列利弊,我也许可以说服开发人员不要这样做。
答案 0 :(得分:2)
我会说这是不好的做法,因为您不能从其原型中推断出该功能的功能。它散发着神奇的常数。
如果您想做这样的事情,可以选择使用enum
来限制tableType
参数的可能性。