场景: 当存在很多判断条件并且不同条件下需要进行不同处理的时候,正常来写的话代码中会存在非常多的if else 语句,可读性和可维护都会大大降低
实现:
1 简单分支优化
如果是针对于很多相等性的判断,如下图所示。 而且还可能会存在分支套分支的情况,可以想象到整个代码是非常冗余而且杂乱的
解决: if 分支相等判断我们可以转化为简单的key value对应值,条件与处理函数一一对应,一目了然。只需要将对应的值传入,从中取value进行调用,避免了过多的冗余代码
2 复杂分支优化
针对于非相等性的判断,假设是一些计算表达式。

解决: 我们可以沿用简单优化的思路,将判断与行为进行提取分离。可采用二维数组的结构
3 抽离分支
针对于上述的优化来说,对于比较多的if else 判断 我们完全可以将优化后的代码进行独立的提取
比如上述的describeForNameMap数据是一个独立结构 在我们项目结构完全可以抽离到data路径下 模块化的开发也可以将这个map对象写进一个单独的js文件,之后在需要使用的地方导入即可。
4 具体对比
优化前
该函数重点在于对判断结果的处理,而不在于这个结果是通过什么分支获取的。而在这里就看不出来重点,因为被大量的 if 分支抢占空间,使得函数的重点迷失
优化后
很直观的突出了该函数是对判断结果str进行一个处理 而不关心该值是如何得到的 实现了判断和行为的分离 还便于代码维护