作法(Mechanics)
- 建立一個(gè)新class,根據(jù)[待被處理之函數(shù)]的用途,為這個(gè)class命名。
- 在新class中建立一個(gè)final值域,用以保存原先大型函數(shù)所駐對(duì)象。我們將這個(gè)值域稱為[源對(duì)象]。同時(shí),針對(duì)原(舊)函數(shù)的每個(gè)臨時(shí)變量和每個(gè)參數(shù),在新class中建立一個(gè)個(gè)對(duì)應(yīng)的值域保存之。
- 在新class中建立一個(gè)構(gòu)造函數(shù)(constructor),接收源對(duì)象及原函數(shù)的所有參數(shù)作為參數(shù)。
- 在新class中建立一個(gè)compute()函數(shù)。
- 將原(舊)函數(shù)的代碼拷貝到compute()函數(shù)中。如果需要調(diào)用源對(duì)象的任何函數(shù),請(qǐng)以[源對(duì)象]值域調(diào)用。
- 編譯。
- 將舊函數(shù)的函數(shù)本體替換為這樣一條語(yǔ)句:[創(chuàng)建上述新class的一個(gè)新對(duì)象,而后調(diào)用其中的compute()函數(shù)]。
現(xiàn)在進(jìn)行到很有趣的部分了。由于所有局部變量現(xiàn)在都成了值域,所以你可以任意分解這個(gè)大型函數(shù),不必傳遞任何參數(shù)。