在编码中难免遇到if else过多情况,一方面是当初设计没有在意,另一方面可能是因为需求的不断变化。但代码中出现大量if else都知道这种情况不太好,那么我们就聊一下这种情况应该如何优化 if(条件1){ .... }else if(条件2){ .... }else if(条件3){ .... }else{ .... } 1.表驱动 表驱动是指用查表的方式获取值 private static Map<Status, Function<Integer, Integer>> conditions; static { conditions = new HashMap<>(); conditions.put(Status.CONDITION1,(t)->{ return t+1; }); conditions.put(Status.CONDITION2,(t)->{ return t+2; }); } @Test public void test(){ Integer apply = conditions.get(Status.CONDITION1).apply(1); System.out.println(apply); } enum Status{ CONDITION1,CONDITION2; } 2.责任链模式 当判断条件复杂多变时,就无法使用上述的驱动表了。