我正在重構接受來自終端的命令的Java應用程序。目前,有一個巨大的if-else結構檢查發出的命令並執行所需的方法。我想知道是否有可能用完善的設計模式取代這種邏輯。 我看了一下命令模式和策略模式,但在這種情況下似乎無法擺脫困境。請建議。接受終端命令的設計模式
更新: 我確實使用JCommander,但這並沒有擺脫if-else結構。
MyCommand cmd1 = new MyCommand();
...
...
MyCommandN cmdN = new MyCommandN();
JCommander cmd = new JCommander();
cmd.addCommand("myCommand1", cmd1);
...
...
cmd.addCommand("myCommandN", cmdN);
try {
cmd.parse(args);
//
if ("myCommand1".equals(cmd.getParsedCommand())) {
System.out.println("running command1");
}
...
...
else if ("myCommandN".equals(cmd.getParsedCommand())) {
// Sysout statements only for illustration. I call command specific methods here.
System.out.println("running commandN");
} else {
cmd.usage();
}
//
} catch (ParameterException ex) {
System.out.println(ex.getMessage());
cmd.usage();
}
見(https://stackoverflow.com/questions [哪些Java設計模式最適合的if-else語句,包括循環?]/33010710)。 –