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

手法:Move Function(搬移函数)

把函数搬到更合适的位置:引用某个模块更多的函数应住在那个模块里;搬移前先看调用方分布与依赖方向,避免制造反向依赖。

判断函数与哪个模块的耦合更深
步骤确认依赖方向 → 搬移 → 更新引用 → 删除旧位置
配套Move Field、提炼依赖

方向示意

方向示意
// 之前:Account 上计算透支费用,实则依赖 AccountType 规则
// 之后:charges 归 AccountType,Account 只做委托调用
double overdraftCharge() {
    return type.overdraftCharge(daysOverdrawn);
}

易错点

  • 只搬函数不搬它依赖的字段:依赖关系反而绕远
  • 跨模块搬移时忽略发布边界:内部工具方法被下游误用

数据来源与参考

  • 《重构》第 2 版 · 第 8 章(Move Function)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌