我有一个具有多种方法的 impl 类,它们基本上都使用具有不同参数列表的 runtime.exec 调用脚本,例如
public String doExport(String ruleIds, String fileName) throws Exception{
StringBuffer cmd = new StringBuffer();
cmd.append(SOME_SCRIPT + " -a export ");
cmd.append(" -f " );
cmd.append(fileName);
cmd.append(" -r " );
cmd.append(ruleIds);
cmd.append(" 2>/dev/null");
return execCmd(cmd.toString());
}
public String doImport(String fileName, String user, String iface) throws Exception {
StringBuffer cmd = new StringBuffer();
cmd.append(SOME_SCRIPT + " -a import ");
cmd.append(" -f " );
cmd.append(fileName);
cmd.append(" -m " );
cmd.append("user");
cmd.append(" -u " );
cmd.append(user);
cmd.append(" -I " );
cmd.append(iface);
return execCmd(cmd.toString());
}
public String setRulesMode(String mode) throws Exception {
String cmd = SOME_SCRIPT + " -a ";
return execCmd(cmd.toString());
}
有没有更好的方法来做到这一点?喜欢封装命令和参数或更通用的方法?我尝试使用枚举,但发现当有静态/常量参数列表时使用枚举更好,因此寻找更好的替代方法。