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

手法:Extract Class(提炼类)

一个类承担了两类职责时,把其中一类搬进新类:字段、方法、以及它们之间的依赖一起迁移;提炼后原类以组合引用新类,职责边界显式化。

信号类中字段按用途可分为两簇、方法按簇聚集
做法建新类 → 搬字段 → 搬方法 → 旧类保留组合
收益每类只对一类变化负责

结构变化

结构变化
// 之前
class Person { name, officeAreaCode, officeNumber }

// 之后
class Person { name, TelephoneNumber phone }
class TelephoneNumber { areaCode, number }

易错点

  • 按字段数量而不是职责划分:拆出的类依旧混杂
  • 新类直接暴露所有字段:封装没建立,只是换了个位置

数据来源与参考

  • 《重构》第 2 版 · 第 7 章(Extract Class)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌