3.4 long parameter list(过长参数列)

来源:互联网 发布:3c证书编号 淘宝 编辑:程序博客网 时间:2024/04/29 17:08

太长的参数列难以理解,太多的参数会造成前后不一致,不易使用,而且一旦你需要更多数据,就不得不修改它。如果将对象传递给函数,大多数修改都将没有必要,因为你很可能只需增加一两条请求,就能得到更多数据。

如果向已有的对象发出一条请求就可以取代一个参数,那么你应该激活重构手法replace parameter with method。“已有的对象”可能是函数所属类内的一个字段,也可能是另一个参数。还可以运用preserve whole object将来自同一对象的一堆数据收集起来,并以该对象替换它们。如果某些参数缺乏合理的对象归属,可使用introduce parameter object为它们制造出一个“参数对象”。

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