如果向已有的对象发出1条请求就可以取代1个参数,那么就运用 Replace Parameter with Methods (以函数取代参数)。在这里,"已有的对象"可能是函数所属类里的1个字段,也可能是另一个参数。还可以运用 Preserve Whole Object (保持对象完整)将来自同一对象的一堆数据收集起来,并以该对象替换它们。如果某些数据缺乏合理的对象归属,可使用 Introduce Parameter Object (引入参数对象)为它们制造出一个参数对象。
重要的例外:如果你明显不想造成"被调用对象"与"较大对象"间的某种依赖关系。这时候将数据从对象中拆解出来单独作为参数,也很合情理。但是请注意其所引发的代价。如果参数列太长或变化太频繁,就需要重新考虑自己的依赖结构了。