0

ユーザーに 10 個の異なる果物の中から果物を選択するよう求める単純なケースを考えてみましょう。果物がリンゴ、オレンジ、マンゴーなどであるとしましょう。ユーザーがリンゴを選択した場合は apples() を呼び出し、マンゴーを選択した場合は mangoes() を呼び出します...

どの関数を呼び出すかを選択するために、switch や if-else ステートメントを使用したくありません。実行時に呼び出す関数を選択するにはどうすればよいですか?

注:私が使用しているプログラミング言語はJavaです

4

3 に答える 3

0

デザインパターン「コマンド」を使用します。 http://www.codeproject.com/Articles/186192/Command-Design-Pattern

実行する必要のあるアクションの詳細を非表示にします。

于 2012-10-11T05:27:56.983 に答える
0

を使用しReflectionます。例: すべての関数をクラスに記述します。com.sample.FruitStall 次に、以下のコードを使用します。

String className = "com.sample.FruitStall";
String methodName = "apple"; //here you will choose desired method
Object result;
Class<?> _class;
        try {
            _class = Class.forName(className);
        } catch (Exception e) {
            e.printStackTrace();
        }
            Object[] args = new Object[1];  // To Supply arguments to function
            result = _class.invokeMethod(methodName, args);
于 2012-10-11T05:24:00.557 に答える
0

Java Refection apiを使用して、実行時に関数を呼び出します。

        Class noparams[] = {};
        Class cls = Class.forName("com.test.Fruit");
        Object obj = cls.newInstance();

        //call the printIt method
        Method method = cls.getDeclaredMethod("apples", noparams);
        method.invoke(obj, null);
于 2012-10-11T05:24:32.790 に答える