移除中间人
通过此重构,可以将类中的委托方法的调用替换为直接对委托字段的调用,并删除不再使用的委托方法。
执行重构
- 在代码编辑器中,将光标放置在其声明中委托字段的名称上。
- 单击右键展示上下文菜单,选择 。
- 在打开的“移除中间人”对话框中,选择要内联的委托方法。要删除方法,请选中该方法旁边的复选框。如下图所示:
图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!"); } } }