| 信号 | 子类只改构造或单个方法、分支旋钮是数据 |
|---|---|
| 做法 | 字段/枚举替代、或改为委托对象 |
| 前提 | 无外部按类型判断的代码 |
示意
示意
// 之前
class Engineer extends Person { ... }
// 之后
class Person { String role; }子类的差异只剩数据或极少量分支时,撤销子类后用字段、枚举或委托表达:类数量减少、结构更直白;先确认没有以类型身份参与多态分派的逻辑。
| 信号 | 子类只改构造或单个方法、分支旋钮是数据 |
|---|---|
| 做法 | 字段/枚举替代、或改为委托对象 |
| 前提 | 无外部按类型判断的代码 |
// 之前
class Engineer extends Person { ... }
// 之后
class Person { String role; }