我需要基于特定的cli组合选项执行一些函数(我使用apachecommons cli库)。
myprogram -a -b ptionArgument -c
myprogram -a -c
myprogram -d optionArgument1 optionArgument2
为了处理这种情况,我有一个非常长的基于特定组合的“else if”列表,所有这些都在我的主要功能中:
if (line.hasOption('a') && line.hasOption('b') && line.hasOption('c')){
method1();
method2();
}
else if (line.hasOption('a') && line.hasOption('c')){
method4();
}
else if (line.hasOption('d')){
method1();
method4();
}
....
有没有更好的设计方法(通过使用一些设计模式(例如)。
1条答案
按热度按时间3phpmpom1#
我会想出这个办法
CombinationHandler
接口handle()
方法并创建Map,其中参数是键CombinationHandler
的是值。之后,您可以简单地添加不同的CombinationHandler
,并调用它们