動機(Motivation)
我在本書中不斷向讀者強調小型函數的優美動人。只要將相對獨立的代碼從大型函數中提煉出來,就可以大大提高代碼的可讀性。
但是,局部變量的存在會增加函數分解難度。如果一個函數之中局部變量泛濫成災,那么想分解這個函數是非常困難的。Replace Temp with Query(120)可以助你減輕這一負擔,但有時候你會發現根本無法拆解的函數。這種情況下,你應該把手深深地伸入你的工具箱(好酒沉甕底呢),祭出函數對象(method object)這件法寶。
Replace Method with Method Object(135)會將所有局部變量都變成函數對象(method object)的值域(field)。然后你就可以對這個新對象使用Extract Method(110)創造出新函數,從而將原本的大型函數拆解變短。