0

我在基于弹簧配置的示例之后,根据参数的值,调用不同的函数。

我一直在谷歌搜索“弹簧功能解析器”或类似的东西,但可惜我似乎在网上找不到任何东西。

所以基本上,所有函数都会以某种方式存储在某个地方,并根据这个参数的值调用不同的函数。

例如“PameterISA”-> 调用 A()

“ParameterISB”-> 调用 B()

ETC....

这很容易用 Spring 完成吗?

谢谢

4

1 回答 1

0

面向对象的处理方式如果PameterISA并且PameterISB可以是实现公共接口的不同类的实例,那么您可以使用策略模式

interface Strategy {
    void doIt();
}

class ClassA implements Strategy {
    @Override
    public void doIt() {
        // execute the code that corresponds to A()
    }
}

class ClassB implements Strategy {
    @Override
    public void doIt() {
        // execute the code that corresponds to B()
    }
}

现在,你所要做的就是

Strategy PameterISA = new ClassA();
Strategy PameterISB = new ClassB();

// ...

Strategy strategy = // an instance of either ClassA or ClassB
strategy.doIt();    // will call the correct method.

或者,如果参数是 a byte, short, char int(或它们的盒装对应物)enum或(从 Java 7 开始)String,您可以使用普通的旧switch语句:

switch (parameter) {
    case "PameterISA":
        A();
        break;
    case "PameterISB":
        B();
        break;
    default:
        throw new IllegalArgumentException(parameter);
}

最后,您可以使用程序if- else if-else模式。

于 2013-02-11T19:37:07.183 回答