圣诞大减价开始了!

信息链

迹象和症状

在代码中,您可以看到一系列类似于美元- > b () - > c () - > d ()

问题的原因

消息链发生在客户端请求另一个对象,该对象又请求另一个对象,以此类推。这些链意味着客户端依赖于沿着类结构的导航。这些关系中的任何更改都需要修改客户端。

治疗

  • 若要删除消息链,请使用隐藏的委托

  • 有时最好考虑一下为什么要使用end对象。也许用它会有意义提取方法并将其移动到链的开始,通过使用移动方法

回报

  • 减少链类之间的依赖关系。

  • 减少臃肿代码的数量。

何时忽略

  • 过度激进的委托隐藏会导致代码中很难看到功能实际发生的位置。另一种说法是,避免中间的男人还有气味。
Baidu
map