在面向對象程序中活的最好最長久的是短方法。對於新手而言,很困惱面向對象的程序中完全找不到計算邏輯,反而是無窮無盡的方法調用,但是當你習慣面向對象后就會了解到短方法的價值所在。 短方法的價值 從較早 ...
當你看到別人寫的超過千行的巨無霸類,以及隨着時間的累積,自己寫的類也穩步邁向巨無霸的時候,是不是既恐懼又無奈 一碼今天就帶小伙伴們征服巨無霸,打造屬於自己的成就感。 過長類的緣由 當業務邏輯隨着時間累積,並且越來越復雜時,這個類由本來的清秀怡人非常容易變得滿臉橫肉。 一個類中業務邏輯越來越多,首先它的職責就不再單一,一說這,小伙伴們都明白。 其次邏輯越多,涉及的狀態越多,即實例變量越多,實例變量一 ...
2015-06-03 09:16 11 2484 推薦指數:
在面向對象程序中活的最好最長久的是短方法。對於新手而言,很困惱面向對象的程序中完全找不到計算邏輯,反而是無窮無盡的方法調用,但是當你習慣面向對象后就會了解到短方法的價值所在。 短方法的價值 從較早 ...
越來越多人關注《大話重構》系列,一碼感謝大家的支持。從系列開始到現在,有提出疑問的,有說好的,有說壞的,一碼在此一並回答。 問:單篇篇幅長,知識點多,看起來很吃力 答:如果覺得有難度,不要氣餒,你學習的機會就在眼前。《大話重構》的每篇文章都針對一種代碼壞味道,務求講清“壞”在哪兒,有哪些方法 ...
上一篇《職責單一原則真的簡單嗎》中我們認識了 發散式變化 ,它是一個類包含多個維度的變化,職責不單一。本文討論的代碼壞味道是 散彈式修改 ,與 發散式變化 恰好相反,一個維度的變化涉及到多個類。 在商業項目開發過程中,經常會碰到“加個需求,到處改代碼”的情況,也就是 散彈式修改 ,典型后果是漏改 ...
在OO(面向對象)時代長大的小伙伴們一定記得: 面向對象的基石:把數據和依賴該數據的行為封裝在一起。 但我們經常遇到一個類依賴其它類的數據的情況。不多的話,正常,對象間勢必存在交互,畢竟完全獨立的類無法構建出復雜的業務系統。 太多依賴外部數據的話,可能是問題,也可能不是問題 ...
在上篇博客《代碼重構(一):函數重構規則(Swift版)》中,詳細的介紹了函數的重構規則,其中主要包括:Extract Method, Inline Method, Inline Temp, Replace Temp with Query, Introduce Explaining ...
11年前有幸閱讀了《重構——改善既有代碼的設計》第一版,當時是一口氣讀完的,書中的內容直接驚艷到我了。 今年讀了該書的第二版,再次震撼到我了,並且這次的示例代碼用的JavaScript,讓我更有親切感。 全書共有12章,前面5章是在講解重構的原則、測試、代碼的壞味道等內容,后面7章 ...
個原因是一旦需要更多數據,就可能要增加參數或者重載這個方法。所以消除過長參數往往能提高代碼的可讀性。 方 ...
說了那么多,讓我們用示例看看,系統重構是應該怎樣做自動化測試的。還是回到前面那個HelloWorld的例子(詳見 3.3 小步快跑是這樣玩的),該類中有一個sayHello()方法,只要我們輸入當前的時間與用戶名,就返回對該用戶的問候語。如果當前時間是上午,則返回“Hi, XXX. Good ...