我有一个Java程序用作命令行应用程序。 我正在使用jopt进行参数处理。 从Jopt获取值时,代码变得丑陋,因为根据参数值的多种情况选择执行路径。
以下是负责根据参数值选择下一步的方法:
private void processArgs(String args[]) {
.......
if (argsList.contains(VERSION)) {
showVersion();
return;
}
if (argsList.contains(SHOWENV)) {
showEnv();
}
if (parsed.has(TARGET_LANG)) {
String targetedLang = _targetLangOptionSpec.value(parsed);
if (!JAVA.equalsIgnoreCase(targetedLang))
{
execJava();
return;
}
}
if (parsed.has(TARGET)) {
processTargets();
return;
}
if (parsed.has(EXEC)) {
processExec();
}
if (parsed.has(CONSOLIDATE)) {
consolidate();
}
......
}
我想知道这个案例是否已经被一些设计模式处理过了。
我已经查看了here的答案,但没有提出明确的解决方案。
答案 0 :(得分:-1)
一个选项是创建一个单独的类来解析参数。然后,您可以查询其状态以确定应使用哪些执行情况。
这种方法将解析与执行分开,我认为这是一个很好的设计(如果我错了,请纠正我)。