移除中间人
通过此重构,可以将类中的委托方法的调用替换为直接对委托字段的调用,并删除不再使用的委托方法。
执行重构
- 在代码编辑器中,将光标放置在其声明中委托字段的名称上。
- 单击右键展示上下文菜单,选择。
- 在打开的“移除中间人”对话框中,选择要内联的委托方法。要删除方法,请选中该方法旁边的复选框。如下图所示:
图1 移除中间人
- 单击“重构”以应用重构。
示例
例如,从类InnerClass中删除print委托方法,将其替换为对委托字段nextClass的调用。
重构前
“com\refactoring\source\Middleman.java”文件内容如下:
class Middleman {
public static void main(String[] args) {
InnerClass innerClass = new InnerClass();
innerClass.print();
}
private static class InnerClass {
private final NextClass nextClass = new NextClass();
public void print() {
nextClass.print();
}
}
private static class NextClass {
public void print() {
System.out.println("Hello World!");
}
}
}
重构后
“com\refactoring\source\Middleman.java”文件内容如下:
class Middleman {
public static void main(String[] args) {
InnerClass innerClass = new InnerClass();
innerClass.getNextClass().print();
}
private static class InnerClass {
private final NextClass nextClass = new NextClass();
public NextClass getNextClass() {
return nextClass;
}
}
private static class NextClass {
public void print() {
System.out.println("Hello World!");
}
}
}