首页/开发/代码质量与评审速查/坏味道:中间人(Middle Man)
重构手法62 条

坏味道:中间人(Middle Man)

类的大部分方法只是转发给另一个对象:用 Remove Middle Man、Inline Class 削减多余委托;封装与转发之间要找平衡点,而不是谁转发谁就坏。

信号超过一半方法是一行转发
手法Remove Middle Man、Inline Class
对照与 Hide Delegate 是相反方向的拉锯

内联方向

内联方向
// 之前
class Account {
    double balance() { return this.ledger.balance(); }
}
// 之后:调用方直接持有 ledger(依赖方向清晰时)

易错点

  • 为减转发直接暴露内部依赖:破坏了原有边界
  • 把有校验职责的转发当噪音删掉:校验逻辑随之丢失

数据来源与参考

  • 《重构》第 2 版 · 第 3 章(Middle Man)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌