遇到这样的问题,if非常多,且几乎都不是判断同一条件的,导致代码非常臃肿。例如:
if(a){
if(b){
...
else{
...
}
}else{
if(b){
...
else{
...
}}因为a、b两个条件不相交,且得考虑2*2=4种情况,代码很烂,不知道有什么好的办法解决
if(a){
if(b){
...
else{
...
}
}else{
if(b){
...
else{
...
}}因为a、b两个条件不相交,且得考虑2*2=4种情况,代码很烂,不知道有什么好的办法解决
这个结构会简单点,不过得看你需求能不能代替了
if语句效率还是最高的虽然看的臃肿点
当a为true的时候要执行
if(b){
...
else{
...
}
当a为false的时候也执行这段代码~
那a的true/false也就失去了意义了啊package demo;public class MultiCheck { interface Checker {
public void check();
}
static class Checker1 implements Checker {
@Override
public void check() {
System.out.println("条件a为true时的check代码");
}
}
static class Checker2 implements Checker {
@Override
public void check() {
System.out.println("条件a为false时的check代码");
}
} // 当是满足条件A的时候,就生成Checker1
// 这里就相当于条件判断的第一层(a=true or false),应该是根据逻辑来生成相应的Checker,但这里不
// 清楚你们的条件,所以就写成了这样
public static Checker getChecker() {
boolean a = true;
if(a) {
return new Checker1();
} else {
return new Checker2();
}
}
public static void main(String[] args) {
Checker checker = getChecker();
checker.check();
}
}
上面的代码只是我的一个想法,你可以参考一下