動機(Motivation)
有時候你會遇到某些函數,其內部代碼和函數名稱同樣清晰易讀.
另一種需要使用Inline Method(117)的情況是:你手上有一群組織不甚合理的函數.你可以將它們都inline到一個大型函數中,再從中提煉出組織合理的小型函數.Kent Beck發現,實施Replace Method with Method Object(135)之前先這么做,往往可以獲得不錯的效果.你可以把你所要的函數(有著你要的行為)的所有調用對象的函數內容都inline到method object(函數對象)中.比起既要移動一個函數,又要移動它所調用的其他所有函數,[將大型函數作為單一整體來移動]會比較簡單.
如果別人使用了太多間接層,使得系統中的所有函數都似乎只是對另一個函數的簡單委托(delegation),造成我在這些委托動作之間暈頭轉向,那么我通常都會使用Inline Method(117).當然,間接層有其價值,但不是所有間接層都有價值.試著使用inlining,我可以找出那些有用的間接層,同時將那些無用的間接層去除.