IntelliJ IDEA教程
IntelliJ IDEA的一般准则
IntelliJ IDEA编辑器
IntelliJ IDEA高级编辑程序
IDEA使用Subversion集成
IntelliJ IDEA提取重构
IntelliJ IDEA插件

IntelliJ IDEA提取接口重构

使用提取接口重构,您有下列三个选择:

⒈ 根据类的方法创建一个接口而不需要立即应用新的接口。

⒉创建一个接口并将其应用于源代码。

⒊ 重命名原始类,并实现新创建的接口。在这种情况下,IntelliJ IDEA 会更改原始类的所有用法,以尽可能使用该接口。

另外,在初始类中声明的静态 final 字段可以被移动到一个接口。因此,将会创建一个包含特定方法和字段的接口。从而,指定的类方法成为相应接口方法的实现。

示例

在这里,我们有一个类,并执行提取接口重构,根据类的方法创建一个接口。

重构前

重构后

// AClass.java 文件
class AClass {
    public static final double CONSTANT=3.14;
    public void publicMethod() {//some code here}
    public void secretMethod() {//some code here}
}

 

// AClass.java 文件
class AClass implements AnInterface {
    public void publicMethod() {//some code here}
    public void secretMethod() {//some code here}
}
// AnInterface.java 文件
public interface AnInterface {
    double CONSTANT=3.14;
    void publicMethod();
}

 

提取接口重构的另一个例子,当重命名的原始类和使用接口的可能选项被选中。

重构前 重构后
public class FormerAClass implements AClass {
    public void publicMethod() {//some code here}
    public void secretMethod() {//some code here}
}

 

public interface AClass {
    double CONSTANT=3.14;
    void publicMethod();
}

 

您可以从已实现另一个接口的类中提取接口。让我们从实现 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 在 "查找工具" 窗口中显示重构预览,请查看建议的更改。要提取接口并应用建议的更改,请单击 "执行重构"。