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