《重構-改善既有代碼的設計》讀書筆記(二)

12Lazy Class – 冗贅類

對於幾乎沒有用的類,運用inline class 將其功能移動。去除這些不值得維護的類。

 
13Speculative Generality – 誇誇其談未來性

    對於你現在用不到,覺得總有一天會用到的代碼,要警惕。用不上的裝置總會擋我們的路,所以要儘量搬開。例如,沒有太大作用的abstract class,非必要的委託,沒有用到的函數參數,或者是函數的名稱帶有多餘的抽像的意味。

 
14Temporary Field – 令人迷惑的暫時值域

 如果某些變量只是爲了某種特定情況而設的,常會讓人不理解

 
15Message Chains – 過度耦合的消息鏈

    你常會看到用戶向一個對象請求另一個對象,然後再向後者請求另一對像,然後再繼續形成了一個強耦合的消息鏈。一旦對像間的關係發生任何變化,客戶不得不做出大量修改。

 
16Middle Man –中間轉手人

   Encapsulation – 封裝,對外部世界隱藏內部細節。封裝常常伴隨delegation(委託),但如果被過度使用,就必須得重新考慮。如果你看到某個class中有一半的函數都委託給其它class,這時就是強烈地信號。

 
17Inappropriate Intimacy – 狎暱關係

 二個類之間的關係聯繫太過緊密,造成強耦合。一般來講,繼承往往會造成這樣結果,因爲subclasssuperclass的瞭解總是超過superclass的主觀願望。

 
18Alternative Classed with Different Interfaces? -- 異曲同工的類

 二個函數做同樣的事,卻有着不同的名字。你該知道怎麼處理了吧。

 
19Incomplete Library Class – 不完美的程序庫類

 我們在運用程序類庫的時候,發現它並不是真正適合需要。

 
20Data Class 純稚的數據類

 找到Data Class 中可能存在的public的值域,如果它的fields中存在容器類,就要小心地檢查是不是得到了有效的封裝。

 
21Refused Bequest – 被拒絕的遺贈

Subclasses 應該繼承superclass的函數和數據,但是如果subclass並不需要superclass的中某些功能,該怎麼辦呢。

 
22Comments – 過多的註釋

這裏講並不是你不應當寫註釋,而是說,如果一段代碼有着長長的註釋,實際上說明這段代碼是不容易看懂的,如果到處都需要大段的註釋,那整體程序的可讀性就大大困難;如果你一定需要一段註釋來說明,那麼先試着重構,把可提出去Method 找出來,如果這之後仍然需要註釋來解釋其行爲,那就要試着Rename,使其擁有有一個能說明其行爲的類名或方法名,程序可讀性會大大增強
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章