| 信号 | 连续多个 getter、调用方熟悉中间对象结构 |
|---|---|
| 手法 | Hide Delegate、Extract Function |
| 注意 | 迪米特法则的现实权衡 |
封装方向
封装方向
// 之前
manager.department().leader().name()
// 之后
manager.leaderName()a.getB().getC().getD() 这类链条让调用方耦合于整条对象图:用 Hide Delegate 封装转发,或对调用方引入更贴近意图的方法;链条每多一环,改动波及面更大。
| 信号 | 连续多个 getter、调用方熟悉中间对象结构 |
|---|---|
| 手法 | Hide Delegate、Extract Function |
| 注意 | 迪米特法则的现实权衡 |
// 之前
manager.department().leader().name()
// 之后
manager.leaderName()