--- robots: noindex, nofollow tags: refactoring --- # Alternative Classes with Different Interfaces ![](https://i.imgur.com/4QwlGiH.png) ## 徵兆與症狀 兩個類別在功能上可以彼此取代,但是類別的介面卻不一樣。 ## 出現原因 開發者在建立類別時,並不知道已經有類似功能的類別存在。 ## 處理方法 - 使用 `Change Function Declaration` 把不同類別之間的方法調整成一致。 - 使用 `Move Function` 把類別之間的行為調整成一致。 - 調整過程中,如果出現重複,可以使用 `Extract Superclass` 把重複部分抽到父類別。