| 信号 | 类中字段按用途可分为两簇、方法按簇聚集 |
|---|---|
| 做法 | 建新类 → 搬字段 → 搬方法 → 旧类保留组合 |
| 收益 | 每类只对一类变化负责 |
结构变化
结构变化
// 之前
class Person { name, officeAreaCode, officeNumber }
// 之后
class Person { name, TelephoneNumber phone }
class TelephoneNumber { areaCode, number }一个类承担了两类职责时,把其中一类搬进新类:字段、方法、以及它们之间的依赖一起迁移;提炼后原类以组合引用新类,职责边界显式化。
| 信号 | 类中字段按用途可分为两簇、方法按簇聚集 |
|---|---|
| 做法 | 建新类 → 搬字段 → 搬方法 → 旧类保留组合 |
| 收益 | 每类只对一类变化负责 |
// 之前
class Person { name, officeAreaCode, officeNumber }
// 之后
class Person { name, TelephoneNumber phone }
class TelephoneNumber { areaCode, number }