PS:CONST * - * =>常数
我需要使用Java 7语法降低此方法的复杂性。
public void myMethod(){
if(condition1){
menu.addItem(CONSTA-1);
}
if(condition2){
menu.addItem(CONSTB-1);
}
if(condition3){
menu.addItem(CONSTC-1);
menu.addItem(CONSTC-2);
}
if(condition4){
menu.addItem(CONSTD-1);
}
if(condition5){
menu.addItem(CONSTE-1);
}
}
答案 0 :(得分:1)
使用Java 8,您可以考虑使用List<Pair<Predicate, List<MenuItem>>
内容。
换句话说:当可以将每个条件提取到独立的 Predicate 对象中时,您可以执行以下操作:
for (Pair<Predicate, List<MenuItem> pair : thatList) {
if (pair.first().test()) {
pair.second().foreach(menu::addItem);
含义:迭代所有条件,对于第一个匹配,您检索相应的菜单项并添加它们。关键部分是要找到一个理智的方法来实际拥有每个test()
是对的。
你可以在Java7中做类似的事情(通过自己实现所需的类)。但那将是我眼中的过度工程事情。
答案 1 :(得分:1)
重构的基本规则是,方法应该足够小以容纳功能
因此,我们可以轻松地重构,如下所示,
scheduleFixedDelayTask