變更介面是否為重構
2007 年 9 月 2 日
變更程式碼一部分的介面是否為重構?
這個問題的答案很簡單 - 變更介面是重構,前提是您也變更所有呼叫者。一個很好的例子是 重新命名方法,這是一個介面變更重構,幾乎存在於所有重構工具中。
變更所有呼叫者是此重構的必要部分。僅變更介面宣告會中斷系統 - 因此不是行為保留變更。
介面變更重構假設您可以取得所有呼叫者,這就是為什麼您必須對 發佈介面 更加小心。使用發佈介面時,介面本身是系統可觀察行為的一部分。
動態語言會讓這些變更更為尷尬。靜態類型確實有助於精確找出在不同點呼叫哪個介面。反射呼叫也可能讓尋找變得更困難,方法是將方法名稱嵌入字串中,甚至在執行階段組成它們。這是即使在具有重構工具的環境中,測試仍然很重要的另一個領域。