参数处理的设计模式

时间:2015-12-09 20:16:40

标签: java design-patterns

我有一个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的答案,但没有提出明确的解决方案。

1 个答案:

答案 0 :(得分:-1)

一个选项是创建一个单独的类来解析参数。然后,您可以查询其状态以确定应使用哪些执行情况。

这种方法将解析与执行分开,我认为这是一个很好的设计(如果我错了,请纠正我)。