これを処理するオブジェクト指向の方法は、共通のインターフェースを実装するさまざまなクラスのインスタンスである可能性がある場合、戦略パターンを使用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.
または、パラメーターがbyte
、、、(またはそれらのボックス化された対応物)、または(Java 7以降)の場合は、単純な古いswitchステートメントを使用できます。short
char
int
enum
String
switch (parameter) {
case "PameterISA":
A();
break;
case "PameterISB":
B();
break;
default:
throw new IllegalArgumentException(parameter);
}
if
最後に、手続き型else if
---else
パターンを使用できます。