| 信号 | 同一文件出现在差异很大的多类需求中 |
|---|---|
| 手法 | Extract Class、Split Phase |
| 目标 | 一个模块只对一类变化负责 |
拆分示例
拆分示例
// 之前:OrderService 承担校验 + 定价 + 持久化
// 之后:OrderValidator / Pricer / OrderRepository一个类因不同原因被反复修改(数据库字段变了改它、税费规则变了也改它):按变化原因拆分,用 Split Phase、Extract Class 让每种变化只影响一个模块。
| 信号 | 同一文件出现在差异很大的多类需求中 |
|---|---|
| 手法 | Extract Class、Split Phase |
| 目标 | 一个模块只对一类变化负责 |
// 之前:OrderService 承担校验 + 定价 + 持久化
// 之后:OrderValidator / Pricer / OrderRepository