我有一个使用命令设计模式的对象集合,即它们实现了一个抽象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();
}
显然,随着可用命令列表的增加,这将成为相当乏味的代码