使用提取接口重构,您有下列三个选择:
⒈ 根据类的方法创建一个接口而不需要立即应用新的接口。
⒉创建一个接口并将其应用于源代码。
⒊ 重命名原始类,并实现新创建的接口。在这种情况下,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 在 "查找工具" 窗口中显示重构预览,请查看建议的更改。要提取接口并应用建议的更改,请单击 "执行重构"。