【发布时间】:2016-03-15 06:42:36
【问题描述】:
我有一个用作命令行应用程序的 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 的答案,但没有提出明确的解决方案。
【问题讨论】:
-
Apache commons CLI 库有非常好的命令行处理实用程序,如果您没有遇到过的话。 commons.apache.org/proper/commons-cli
-
你能提供一个你试图解决的问题的例子吗?
-
@Bajal 我已经使用 Jopt java 来处理参数的处理。我的问题是根据参数的值处理多种执行情况的最佳方法。
-
谷歌策略模式
标签: java design-patterns