为云·寻找黑马程序员#【代码重构之路】如何“消除”if/else【华为云技术分享】
1. 背景 if/else是高级编程语言中最基础的功能,虽然 if/else 是必须的,但滥用 if/else,特别是各种大量的if/else嵌套,会对代码的可读性、可维护性造成很大伤害,对于阅读代码的人来说就是一场灾难。 本系列博客的目的不是消除if/else,而是如何“写好”if/else 2. 方法 根据if/else的使用方式和场景,大概有如下解决方法 多态 表驱动 职责链模式 卫语句 Optional 调整判断逻辑,抽取方法,逻辑优化 本篇博客我介绍的是表驱动,后续博客会介绍其他案例 首先来看下最简单的if…else if…场景,也是经常可以在代码中看到的案例 3. 案例 有如下业务代码demo,根据type值,判断然后返回设备的名称 1 //逻辑表达模式固定的 if…else 2 public String getDeviceName(int type){ 3 if (type == 1) { 4 return "ONT"; 5 } else if (type == 2) { 6 return "OLT"; 7 } else if (type == 3) { 8 return "ONU"; 9 } else if (type == 4) { 10 return "MXU"; 11 } 12 return null; 13 } 随着时间的积累和项目的迭代