首页/开发/代码质量与评审速查/手法:Inline Function(内联函数)
重构手法62 条

手法:Inline Function(内联函数)

把简单到多余的函数收回调用处:函数体与名字一样清楚、或只剩一层转发时,内联能消除不必要的间接层;内联也是重组前清场的手段。

场景函数体比名字更清晰、纯委托、滥用提炼
反向与 Extract Function 互为逆操作
步骤找到全部调用点,替换为函数体,删除定义

Java 示例

Java 示例
// 内联前
double basePrice() {
    return moreThan100() ? base * 0.95 : base;
}
boolean moreThan100() {
    return base > 100;
}

// 内联后
double basePrice() {
    return base > 100 ? base * 0.95 : base;
}
IDE 的 Inline 重构可安全处理多态分派:手工内联多态方法容易漏掉子类覆写。

易错点

  • 为消除转发层忽略测试钩子:有的薄函数被单测替换使用
  • 手工内联后又觉得要提炼:来回震荡,先在评审里定方向

数据来源与参考

  • 《重构》第 2 版 · 第 6 章(Inline Function)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌