重構之函式提取

2021-07-08 13:42:33 字數 1588 閱讀 7295

extract method (提煉函式)

public void addfriendinfo(ulong dbid)

}

提煉之後

public voidshowfriendsinfo(dictionaryshow_friends)}}

public voidfriendinfoshow(gameobject go,frienddata fd)

inline method(內聯函式)

這點在自己的**中沒有找到,就是刪除簡單明瞭的方法,減少中間層,比如函式返回值是乙個bool型,函式體是一句比較的判斷。

inline temp(內聯臨時變數)

減少臨時變數的使用,一般操作將去掉臨時變數,兩句合在一起。

replace temp with query(以查詢取代臨時變數)

比如臨時變數等於兩個欄位的乘積,可以去除臨時變數,提那家乙個查詢方法,方法體是兩個字段乘積,返回值取代原來的臨時變數。

introduce explaining variable(引入解釋型變數)

增加**可讀性

split temporary variable(分解臨時變數)

乙個臨時變數不要表達多個用途

remove assignments toparameters(移除對引數的賦值)

不要對形參賦值,out引數除外

replace method with methodobject(以函式物件取代函式)

開發中遇到的情況如下:

public voidshowworldranklist(dictionaryrankdict)

switch (item.value

.rank)

uigrid.repositionnow = true;

}}

將顯示排名移到別的類中

public void itemshowcrown(int rank)

}重構之後的**為:

public voidshowworldranklist(dictionaryrankdict)

friendinfo.itemshowcrown(item.value

.rank);

uigrid.repositionnow = true;}}

中間部分還需要繼續提出函式,進一步重構

9 替代演算法

public void showrandominfo(dictionaryrankdict)

itemlist.clear();

}foreach (var item in keyslist)

itemlist.add(go);

}}

修改後

public voidshowrandominfo(dictionaryrankdict)

}if(index>=0)

list.removeat(index);

for (int j = 0

; j < 2; j++)

}

C 重構之四(提取介面重構)

提取介面 是一項重構操作,提供了一種使用來自現有類 結構或介面的成員建立新介面的簡單方法。當幾個客戶端使用類 結構或介面中成員的同一子集時,或者當多個類 結構或介面具有通用的成員子集時,在介面中嵌入成員子集將很有用。有關使用介面的更多資訊,請參見 介面 c 程式設計指南 提取介面 在新檔案中生成介面...

重構組合方法之 提取方法

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

iPhone開發重構 提取方法以調整函式粒度

無論在iphone開發還是學習的過程中都會看到一些不是很理想的 不可否認自己也在不斷 貢獻 著這類 面對一些 的 壞味道 重構顯然是個有效的解決途徑。iphone開發重構 系列就想總結和補充iphone開發中經歷的一些重構,其間可能會引用一些開源以及實際專案的 本著對技術的探求,冒昧之處還請作者多多...