使用提取接口重構,您有下列三個選擇:
⒈ 根據類的方法創建一個接口而不需要立即應用新的接口。
⒉創建一個接口并將其應用于源代碼。
⒊ 重命名原始類,并實現新創建的接口。在這種情況下,IntelliJ IDEA 會更改原始類的所有用法,以盡可能使用該接口。
另外,在初始類中聲明的靜態 final 字段可以被移動到一個接口。因此,將會創建一個包含特定方法和字段的接口。從而,指定的類方法成為相應接口方法的實現。
示例
在這里,我們有一個類,并執行提取接口重構,根據類的方法創建一個接口。
重構前 |
重構后 |
---|---|
|
|
提取接口重構的另一個例子,當重命名的原始類和使用接口的可能選項被選中。
重構前 | 重構后 |
---|---|
|
|
您可以從已實現另一個接口的類中提取接口。讓我們從實現 AnInterface 的類中提取接口。根據我們是否需要 AnotherInterface (提取的接口) 來擴展 AnInterface (現有的界面), 或者我們希望源 AClass 實現它們, 我們將得到以下代碼:
提取的接口擴展了現有的一個:
您可以從已經實現了另一個接口的類中提取接口。讓我們從實現 AnInterface 的類中提取接口。根據我們是否需要 AnotherInterface (提取的接口)來擴展 AnInterface (現有的接口)還是我們希望源代碼 AClass 來實現它們,我們將得到以下代碼:
提取的接口擴展了現有的接口:
class AClass implements AnotherInterface {
public void publicMethod() {
//some code here
}
public void secretMethod() {
//some code here
}
}
提取的接口:
public interface AnotherInterface extends AnInterface {
}
Source 類實現兩個接口。
Source 類:
class AClass implements AnInterface, AnotherInterface {
public void publicMethod() {
//some code here
}
public void secretMethod() {
//some code here
}
}
提取的接口:
public interface AnotherInterface {
}
提取接口
⒈ 在 "項目" 視圖、"結構" 視圖中選擇類,或在編輯器中的類中的任意位置放置插入符號。
⒉ 在主菜單或選擇的上下文菜單上,選擇:重構| 提取| 接口。此時將顯示 "提取接口" 對話框。
⒊ 要提取新的接口,請選擇 "提取接口" 選項并指定新接口的名稱。
要重命名原始類并使其成為新創建的接口的實現,請選擇 "重命名原始類" 并使用 "可能的接口" 選項,并指定原始類的新名稱。IntelliJ IDEA 會將所有原始類的用法改為只在仍然需要的地方執行的用法。
⒋ 指定新的接口所在的包。
⒌ 在 "成員" 中選擇要在接口中列出的類成員以形成接口區域。該列表顯示了該類的所有方法,以及最終的靜態字段(常量)。
⒍ 在 JavaDoc 區域,選擇要應用于 JavaDoc 的操作。
① 若要將其保留在其所在的位置,請選擇 "As" 選項。
② 要將其復制到提取的接口,請選擇 "復制" 選項。
③ 要將其移動到提取的接口,請選擇 "移動" 選項。
⒎ 單擊 "重構" 以繼續。
⒏ 在準備就緒時單擊 "重構"。如果 IntelliJ IDEA 在 "查找工具" 窗口中顯示重構預覽,請查看建議的更改。要提取接口并應用建議的更改,請單擊 "執行重構"。