重构坏味道:过长的参数列

2021-11-22  本文已影响0人  Ps天花乱坠

过长的参数列

症状

一个函数拥有大于3个甚至更多的参数,而且调用链上的每个函数可能都需要你传递不同的参数,或者某几个参数看起来就是成对出现,并且拥有不可分开的强耦合关系


过长的参数列

病因

刚开始学习编程的时候,我们总是把函数需要的东西全部以参数的形式传递进去,因为除此之外就只能选择全局数据,而全局数据是个邪恶的东西。
还有一种情况你可能在重构代码的时候,把好几个函数合并成了一个函数,这样就会导致,原来每个函数的参数都会作为你这个新函数的参数存在。

导致的健康问题

虽然参数的独立可以隔离对象之间的依赖,但如果太长的参数列不仅难以理解,太多的参数还会造成前后不一致,不易使用, 一旦你需要更多的数据,就不得不修改它,而且每一层调用都会相应的修改。

治疗

使用对象技术可以改变了这一情况:如果你的函数没有你所需的参数,总可以叫另一个对象给你,有了对象,你就不必把函数需要的所有东西都以参数传递给它了,只需要传给它足够的,让函数能从对象中获得自己需要的东西就就行了。


重构手法

康复

有一个重要的例外:有时候你明显不希望造成"被调用对象"与"较大对象"间的某种依赖关系.这时候将参数从对象中拆解出来单独作为参数,也很合情合理。但是请注意其所引发的代码。
如果参数列太长或变化太频繁,你就需要重新考虑自己的依赖结构了。

重构后
上一篇下一篇

猜你喜欢

热点阅读