重構組合方法之 提取方法

2021-05-02 19:09:22 字數 561 閱讀 2557

在程式設計中,最常見的錯誤基本上**於方法過長。如果乙個方法過長,那它包含的資訊量就越大,邏輯就越複雜。解決的辦法就是將乙個長的方法拆分為多個小的方法,使其職責明確、邏輯清晰和容易閱讀。這裡所謂的拆分,即為組合方法:乙個大的方法由若干個小方法組成。

這裡就介紹乙個簡單的重構:提取方法extract method。

接下來就具體介紹一下【提取方法】重構的實施過程。

建立乙個新方法,並以方法體的意圖命名。

將要提取的**從原位置拷貝到目標方法。

瀏覽被提取的**,其中包含的一些變數的作用範圍僅限於原方法,那這些變數就是這個新方法的引數。

檢視是否存在僅為被提取**使用的臨時變數,如果有,就將其改為目標方法的臨時變數。

檢視被提取的**是否改變了區域性變數。如果只改變了乙個,那就將其作為返回值;如果這樣做不適合或是改變多個區域性變數,那就得【分離臨時變數】來限制臨時變數的數量了。

將那些被提取**所需的變數作為引數傳入目標方法。

處理完所有的區域性變數後進行編譯。

在原**中呼叫目標函式來替代被提取的**

編譯並測試。

這樣重構就結束了!

重構之函式提取

extract method 提煉函式 public void addfriendinfo ulong dbid 提煉之後 public voidshowfriendsinfo dictionaryshow friends public voidfriendinfoshow gameobject g...

重構組合方法之 用查詢方法代替臨時變數

通常情況下,在進行程式設計的過程中,使用臨時變數來儲存一些表示式計算的值。這其中存在著一些問題 可讀性差。因為 閱讀者需要理解表示式的含義和目的,這樣注意力就深入至表示式內部,從而降低了閱讀效率和對程式整體的把握。不利於其他重構。因為這樣做程式中會出現很多臨時變數,不利於 提取方法 等其他重構。現在...

重構組合方法之 內聯臨時變數

本文將主要介紹 內聯臨時變數 重構 inline temp 這個重構的主要目的是為了輔助其他重構,用於刪除程式中那些僅被賦值一次的臨時變數。內聯臨時變數 處理過程 確保賦值表示式右側沒有 如果臨時變數不是final,那麼就將其設定為final。編譯。這樣做是確保臨時變數只被賦值一次 用賦值表示式的右...