原文:大話重構 之 消除巨無霸類

當你看到別人寫的超過千行的巨無霸類,以及隨着時間的累積,自己寫的類也穩步邁向巨無霸的時候,是不是既恐懼又無奈 一碼今天就帶小伙伴們征服巨無霸,打造屬於自己的成就感。 過長類的緣由 當業務邏輯隨着時間累積,並且越來越復雜時,這個類由本來的清秀怡人非常容易變得滿臉橫肉。 一個類中業務邏輯越來越多,首先它的職責就不再單一,一說這,小伙伴們都明白。 其次邏輯越多,涉及的狀態越多,即實例變量越多,實例變量一 ...

2015-06-03 09:16 11 2484 推薦指數:

查看詳情

大話重構消除過長方法

在面向對象程序中活的最好最長久的是短方法。對於新手而言,很困惱面向對象的程序中完全找不到計算邏輯,反而是無窮無盡的方法調用,但是當你習慣面向對象后就會了解到短方法的價值所在。 短方法的價值 從較早 ...

Mon May 25 15:49:00 CST 2015 2 1831
大話重構 之 答讀者問

越來越多人關注《大話重構》系列,一碼感謝大家的支持。從系列開始到現在,有提出疑問的,有說好的,有說壞的,一碼在此一並回答。 問:單篇篇幅長,知識點多,看起來很吃力 答:如果覺得有難度,不要氣餒,你學習的機會就在眼前。《大話重構》的每篇文章都針對一種代碼壞味道,務求講清“壞”在哪兒,有哪些方法 ...

Tue Jun 09 02:37:00 CST 2015 8 838
大話重構 之 防止“加個需求,到處改代碼”

上一篇《職責單一原則真的簡單嗎》中我們認識了 發散式變化 ,它是一個包含多個維度的變化,職責不單一。本文討論的代碼壞味道是 散彈式修改 ,與 發散式變化 恰好相反,一個維度的變化涉及到多個。 在商業項目開發過程中,經常會碰到“加個需求,到處改代碼”的情況,也就是 散彈式修改 ,典型后果是漏改 ...

Wed Jul 01 13:57:00 CST 2015 10 2968
大話重構 之 原來反OO天天見

在OO(面向對象)時代長大的小伙伴們一定記得: 面向對象的基石:把數據和依賴該數據的行為封裝在一起。 但我們經常遇到一個依賴其它的數據的情況。不多的話,正常,對象間勢必存在交互,畢竟完全獨立的無法構建出復雜的業務系統。 太多依賴外部數據的話,可能是問題,也可能不是問題 ...

Thu Jul 23 09:02:00 CST 2015 2 1504
代碼重構(二):重構規則

在上篇博客《代碼重構(一):函數重構規則(Swift版)》中,詳細的介紹了函數的重構規則,其中主要包括:Extract Method, Inline Method, Inline Temp, Replace Temp with Query, Introduce Explaining ...

Mon Mar 07 17:19:00 CST 2016 4 5241
重構的秘訣:消除重復,清晰意圖

  11年前有幸閱讀了《重構——改善既有代碼的設計》第一版,當時是一口氣讀完的,書中的內容直接驚艷到我了。   今年讀了該書的第二版,再次震撼到我了,並且這次的示例代碼用的JavaScript,讓我更有親切感。   全書共有12章,前面5章是在講解重構的原則、測試、代碼的壞味道等內容,后面7章 ...

Mon Aug 23 18:12:00 CST 2021 0 537
重構學習2-消除過長參數

個原因是一旦需要更多數據,就可能要增加參數或者重載這個方法。所以消除過長參數往往能提高代碼的可讀性。 方 ...

Wed Apr 18 07:06:00 CST 2012 5 4490
大話重構連載14:我們是這樣自動化測試的

說了那么多,讓我們用示例看看,系統重構是應該怎樣做自動化測試的。還是回到前面那個HelloWorld的例子(詳見 3.3 小步快跑是這樣玩的),該類中有一個sayHello()方法,只要我們輸入當前的時間與用戶名,就返回對該用戶的問候語。如果當前時間是上午,則返回“Hi, XXX. Good ...

Thu Sep 18 09:21:00 CST 2014 6 1219
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM