コマンド デザイン パターンを使用するオブジェクトのコレクションがあります。つまり、オブジェクトは抽象Command
クラスを実装し、execute()
メソッドを持っています。
(たとえば) コマンド ラインから呼び出された場合、次のようなことができますが、非常に面倒です。これをどのように実装しますか。
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();
}
明らかに、使用可能なコマンドのリストが増えるにつれて、これは非常に退屈なコードになります。