| 场景 | 客户端频繁 a.getB().getC() |
|---|---|
| 做法 | 在 A 上加转发方法,调用方改用新方法 |
| 权衡 | 转发方法过多 → 反过来考虑 Remove Middle Man |
Java 示例
Java 示例
// 之前
manager.department().leaderName()
// 之后
manager.leaderName() // Department 细节被隐藏让服务方替你转发对下游对象的调用:调用方不再了解对象图内部,委托链变化被隔离在服务方;与 Remove Middle Man 是一对相反方向的权衡。
| 场景 | 客户端频繁 a.getB().getC() |
|---|---|
| 做法 | 在 A 上加转发方法,调用方改用新方法 |
| 权衡 | 转发方法过多 → 反过来考虑 Remove Middle Man |
// 之前
manager.department().leaderName()
// 之后
manager.leaderName() // Department 细节被隐藏