如果[向既有對象發(fā)出一條請求]就可以取得原本位于參數(shù)列上的一份數(shù)據(jù),那么你應該激活重構準則Peplace Parameter with Method(292)。上述的既有對象可能是函數(shù)所屬class內的一個值域(field),也可能是另一個參數(shù)。你還可以運用Preserve Whole Object(288)將來自同一對象的一堆數(shù)據(jù)收集起來,并以該對象替換它們。如果某些數(shù)據(jù)缺乏合理的對象歸屬,可使用Introduce Parameter Object(295)為它們制造出一個[參數(shù)對象]。
此間存在一個重要的例外。有時侯你明顯不希望造成[被調用對象]與[較大對象]間的某種依存關系。這時候將數(shù)據(jù)從對象中拆解出來單獨作為參數(shù),也很合情合
理。但是請注意其所引發(fā)的代價。如果參數(shù)列太長或變化太頻繁,你就需要重新考慮自己的依存結構(dependency structure)了。