私はcommand design patternを使用してオブジェクトのコレクションを持っています。すなわち、抽象的なCommand
クラスを実装し、メソッドを持っています。あなたはこのような何かを行うことができ、コマンドラインから(例えば)と呼ばれるコマンドデザインパターンを使用してコマンドラインパラメータをオブジェクトに変換する
、が、その真剣不格好、あなたはこれを実装する方法を:
public void main(String[] arg) {
Command c = null;
if(arg[0].equals("FirstCommand") {
c = new FirstCommand(arg[1]);
}
if(arg[0].equals("SecondCommand") {
c = new SecondCommand(arg[1], arg[2]);
}
if(arg[0].equals("ThirdCommand") {
c = new ThirdCommand(arg[1], Long.parseLong(arg[2]));
}
//.....etc....
c.execute();
}
明らかに使用可能なコマンドの一覧が大きくなるにつれ、この
複雑なクラスパスのロードハッキングがなければ、これを行うことはできません。 – Jacob
classpath hackeryはどういう意味ですか?私の答えは、パラメータとして指定されたクラスが実行中のクラスのクラスローダに利用可能であることを前提としています。 Marko TopoInikは私が答えを書くのが面倒すぎるコードを掲示しました – bennidi