原文鏈接:https://sourcemaking.com/refactoring/smells/oo-abusers
說明:所有這些代碼異味都是不完整或不正確的面向對象編程原則的應用。
switch語句(Switch Statements)
你有一復雜的的switch操作語句或者一系列的if語句
臨時字段(Temporary Field)
臨時字段只有某些情況下才能獲取他的值(比如只一個方法內部,臨時變量只在這個方法內有效),除此之外他們都是空的。
繼承過多(Refused Bequest)
如果子類只使用從其父類繼承的少量的方法和屬性,那么層次結構就是off-kilter。 不需要的方法可以簡單地標記為未使用或重新定義并拋出異常。
解決方法:使用代碼來替代繼承關系
相似的類使用不同接口 (Alternative Classes with Different Interfaces)
相似的類,有不同接口
解決方法:重命名函數,或者抽象子類。