目录
1.前言
if/else是java语言中最基础的功能,虽然 if/else 是必须的,但滥用 if/else,特别是各种大量的if/else嵌套,会对代码的可读性、可维护性造成很大伤害,对于阅读代码的人来说就是一场灾难。
重构代码的目的并不是消除if/else,而是使大家如何“写好”if/else
2.方法
本篇博客我介绍的方法是调整判断逻辑,抽取方法,逻辑优化,本次介绍以下重构手法:
分解条件表达式
合并条件表达式
合并重复的条件片段
首先来看下分解条件表达式if/else的使用场景,一个复杂的条件(if-then-else)语句。
3.分解条件表达式——复杂条件的分解
案例:
以前段时间猪肉自由为例,假设我要计算买猪肉的价格(价格=重量*单价),而价格在猪肉自由前和自由后的单价是不一样的:
if(date.before(pigfreedom_start) || date.before(pigfreedom_end) )
price = weight * pigfreedomRate;
else price = weight * normalRate;
分析原因:
复杂的条件逻辑,往往会使代码的可读性下降,让我们弄不清楚为什么这么写,这么写的含义是什么?
做法:
- 提炼if段落,分解为多个独立函数,根据每个小块代码的用途给函数命名
- 替换原函数中对应的代码,改为调用新建的函数