《重构:改善既有代码的设计》中提到过一些代码的坏味道,针对这些坏味道,需要进行重构。
过度耦合的消息链 message chains
- 问题1:用户向一个对象请求另一个对象,然后再向后者请求另一个对象,然后再请求另一个对象。
- 解决方案:使用 hide delegate。先观察消息链最终得到的对象是用来干什么的。看看能否以extract method 把使用该对象的代码提炼到一个独立函数中,再运用move method 把这个函数推入消息链。如果这条链上的某个对象有多位客户打算航行此航线的剩余部分,就加一个函数来做这件事