首页/开发/代码质量与评审速查/手法:Extract Variable(提炼变量)
重构手法62 条

手法:Extract Variable(提炼变量)

把复杂表达式的一部分取出为命名变量:让条件与运算表达意图,调试时也便于观察中间结果;配合引入解释性变量进一步可读。

场景长表达式、条件分支中难懂的子表达式
命名用业务含义命名,避免 temp1 式命名

Java 示例

Java 示例
// 之前
if (platform.toUpperCase().indexOf("MAC") > -1 &&
    browser.toUpperCase().indexOf("IE") > -1) { ... }

// 之后
boolean isMacOs = platform.toUpperCase().indexOf("MAC") > -1;
boolean isIE = browser.toUpperCase().indexOf("IE") > -1;
if (isMacOs && isIE) { ... }

易错点

  • 变量命名复读表达式(`aPlusB = a + b`):没有增加信息
  • 在长函数里加变量而不提炼:函数长度继续膨胀

数据来源与参考

  • 《重构》第 2 版 · 第 6 章(Extract Variable)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌