無論在iphone開發還是學習的過程中都會看到一些不是很理想的**,不可否認自己也在不斷「貢獻」著這類**。面對一些**的「壞味道」,重構顯然是個有效的解決途徑。《iphone開發重構》系列就想總結和補充iphone開發中經歷的一些重構,其間可能會引用一些開源以及實際專案的**,本著對技術的探求,冒昧之處還請作者多多見諒。
記得剛開始做軟體開發的時候,我的導師就在一次函式設計的時候說:「函式粒度很重要,但即使我做了接近二十年的軟體,有時也無法很好把握粒度。這點就只可意會不可言傳了。」這句話可能一部分是出自謙虛,但更多是道出軟體開發的規律。當時我們無法去理解,現在開始慢慢理解。我們設計乙個函式的時候,可能有時就按需設計了,比如需要獲取乙個對年齡的文字提示的時候就設計乙個getagetip()的函式,實現**如下:
重構前:
nsstring* getagetip(int nbornyear, int nbornmonth, int nbornday)
nage = max(nage, 0);
return nage;
}其中,對內getagetip()呼叫了getage(),對外使用者可以根據需要呼叫getagetip()或者getage()。粒度細並合理的情況下,**的復用性和可讀性就大大提供了。但也不能太細了,這樣函式的數目就會「**」從而影響了**維護。粒度的拿捏很重要,但卻很難,這需要在實踐中慢慢體會。
iPhone開發重構 提取類以構成模板模式
無論在iphone開發還是學習的過程中都會看到一些不是很理想的 不可否認自己也在不斷 貢獻 著這類 面對一些 的 壞味道 重構顯然是個有效的解決途徑。iphone開發重構 系列就想總結和補充iphone開發中經歷的一些重構,其間可能會引用一些開源以及實際專案的 本著對技術的探求,冒昧之處還請作者多多...
重構組合方法之 提取方法
在程式設計中,最常見的錯誤基本上 於方法過長。如果乙個方法過長,那它包含的資訊量就越大,邏輯就越複雜。解決的辦法就是將乙個長的方法拆分為多個小的方法,使其職責明確 邏輯清晰和容易閱讀。這裡所謂的拆分,即為組合方法 乙個大的方法由若干個小方法組成。這裡就介紹乙個簡單的重構 提取方法extract me...
31 天重構學習筆記10 提取方法
摘要 由於最近在做重構的專案,所以對重構又重新進行了一遍學習和整理,對31天重構最早接觸是在2009年10月份,由於當時沒有訂閱 sean chambers的blog,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都 在使用,只是我們沒有專門...