3.15 message chains (过度耦合的消息链)

来源:互联网 发布:2016源码交易网站 编辑:程序博客网 时间:2024/06/02 02:35

一个对象请求另一个,后者在请求下一个对象,....这就是消息链。采取这种方式,意味客户代码将与查找过程中的导航结构紧密耦合,一旦对象间的关系发生任何变化,客户端就不得不做出相应修改。

这时候应该使用hide delegate。

通常更好的手法:先观察消息链最终得到的对象是用来干什么的,看看能否以extract method把使用该对象的代码提炼到一个独立函数中,在运用move method把这个函数推入消息链。如果这条链上的某个对象有多位客户打算航行此航线的剩余代码,就加一个函数做这件事。

原创粉丝点击