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開發中經歷的一些重構,其間可能會引用一些開源以及實際專案的 本著對技術的探求,冒昧之處還請作者多多...