提取接口
通过 提取接口 重构,您有以下选项:
根据类的方法创建一个接口。
重命名原始类并实现新创建的接口。 在这种情况下,IntelliJ IDEA 会将所有原始类的用法更改为使用接口(如果可能)。
此外,在初始类中声明的 static final 字段可以移动到接口。 结果是,将创建一个包含特定方法和字段的接口。 因此,指定的类方法成为相应接口方法的实现。
示例
这里我们有一个类,并通过 Extract Interface 重构基于类的方法创建一个接口。
之前 | 之后 |
|---|---|
// File AClass.java
class AClass {
public static final double CONSTANT = 3.14;
public void publicMethod() {
}
public void secretMethod() {
}
}
|
// File AClass.java
class AClass implements AnInterface {
public void publicMethod() {
}
public void secretMethod() {
}
// File AnInterface.java
public interface AnInterface {
double CONSTANT = 3.14;
void publicMethod();
}
}
|
这是 Extract Interface 重构的另一个例子,当选择 重命名原始类并尽可能使用接口 选项时。
之前 | 之后 |
|---|---|
public class FormerAClass implements AClass {
public void publicMethod() {
}
public void secretMethod() {
}
}
|
public interface AClass {
double CONSTANT=3.14;
void publicMethod();
}
|
您可以从已实现另一个接口的类中提取一个接口。 让我们从实现 AnInterface 的类中提取接口。 取决于我们是否希望 AnotherInterface (提取的接口)扩展 AnInterface (现有的接口)或者我们希望源 AClass 实现它们两个,我们将得到以下代码:
提取接口 扩展现有的:
提取接口:
源类 实现了这两个接口。
源类:
提取接口:
提取接口
在 项目 视图、 结构 视图中选择一个类,或将文本光标放置在编辑器中的类内任意位置。
从主菜单或选择内容的上下文菜单中选择 。 提取接口对话框出现。
要提取新的接口,请选择 Extract Interface 选项并指定新接口的名称。
若要重命名原始类并使其成为新创建接口的实现,请选择 重命名原始类并尽可能使用接口 选项并指定原始类的新名称。 IntelliJ IDEA 将修改所有原始类的用法,仅在必要时使用实现类的用法。
指定新接口所在的软件包。
在 形成接口的成员 区域中选择您希望列入接口的类成员。 列表显示了类的所有方法及最终静态字段(常量)。
在 JavaDoc 区域,选择要应用到 JavaDoc 的操作。
要将其保留在当前位置,请选择 保留原样 选项。
要将其复制到提取的界面,请选择 复制 选项。
若要将其移至提取的接口,请选择 移动 选项。
点击 重构 继续。
点击 重构 准备好时。 如果 IntelliJ IDEA 在 重构预览 工具窗口中向您显示 查找 ,请查看建议的更改。 要提取接口并应用建议的更改,请点击 执行重构。