Command というインターフェイスがあります。
public interface Command {
// irrelevant code
}
そして、このインターフェースを実装する約 15 のクラス:
public class Comm_A implements Command {
// irrelevant code
}
public class Comm_B implements Command {...}
....
public class Comm_XZ implements Command {...}
そして、String を受け取り、対応するコマンドのインスタンスを返すファクトリ:
public class CommandFactory {
public static Command getCommand(String s) {
if (s.equals("Comm_A")) return new Comm_A();
else ... // each particular case
}
}
工場コードを変更せずに新しいコマンドを追加できるようにしたいと考えています。
「Comm_A」...「Comm_XZ」の各ケースをハードコーディングせず、java.lang.reflect を使用せずに、対応するインスタンスを自動的に試行して作成することはできますか?