Refused Bequest

徵兆與症狀

一個子類別只用到父類別的少部分的方法跟屬性。

出現原因

開發者有時候嘗試建立父類別,僅止於複用程式碼,但父類別跟子類別其他完全不同類。

處理方法

  • 傳統上來說,這通常表示類別階層不太對,或許應該建立一個 sibling class,然後用 Push Down MethodPush Down Field 把不相關的程式碼移過去。通常這個壞味道並沒有嚴重到一定需要處理。
  • 但如果類別階層其實根本不太適合的話,可以用 Replace Subclass with DelegateReplace Superclass with Delegate 來消除繼承關係。