16. Inappropriate Intimacy
某些類相互之間太親密,它們花費了太多的時間去磚研別人的私有部分。對人類而言,我們也許不應該太假正經,但我們應當讓自己的類嚴格遵守禁欲主義。
17. Alternative Classes with Different Interfaces
做相同事情的方法有不同的函數signature,一致把它們往類層次上移,直至協議一致。
18. Incomplete Library Class
要建立一個好的類庫非常困難。我們大量的程序工作都基于類庫實現。然而,如此廣泛而又相異的目標對庫構建者提出了苛刻的要求。庫構建者也不是萬能的。有時候我們會發現庫類無法實現我們需要的功能。而直接對庫類的修改有非常困難。這時候就需要用各種手段進行Refactoring.
19. Data Class
對象包括狀態和行為。如果一個類只有狀態沒有行為,那么肯定有什么地方出問題了。
20. Refused Bequest
超類傳下來很多行為和狀態,而子類只是用了其中的很小一部分。這通常意味著你的類層次有問題。
21. Comments
經常覺得要寫很多注釋表示你的代碼難以理解。如果這種感覺太多,表示你需要Refactoring。
原文轉自:http://www.anti-gravitydesign.com