IntelliJ IDEA重构:删除中间人
此重构也可从 UML 类图中获得。
通过 "删除中间人" 重构,您可以替换在类中委托方法的所有调用,并直接对委托到的字段进行等效调用。此外,您还可以自动删除类委托方法,现在将不使用。
如果您有一个简单地将其许多方法调用转发给其他类的对象的类,并且希望简化您的设计,则此重构非常有用。
删除中间人示例
操作前:
public class Foo {
Bar bar;
public Foo getImpValue() {
return bar.getImpValue();
}
}
public class Bar {
private Foo impValue1;
public Bar(Foo impValue) {
impValue1 = impValue;
}
public Foo getImpValue() {
return impValue1;
}
}
public class Client {
Foo a;
Foo impValue = a.getImpValue();
}
操作后:
public class Foo {
Bar bar;
public Bar getbar() {
return bar;
}
}
public class Bar {
private Foo impValue1;
public Bar(Foo impValue) {
impValue1 = impValue;
}
public Foo getImpValue(){
return impValue1;
}
}
public class Client {
Foo a;
Foo impValue = a.getbar().getImpValue();
}
删除中间人
- 在编辑器中打开有问题的类,并将插入符号放在委托字段的名称中。或者,在所需类的“结构”视图中选择委托字段。
- 在主菜单或选择的上下文菜单上选择:重构| 删除中间人(Refactor | Remove Middleman)。
- 在删除中间人对话框中:
- 选择是否希望任何只转发到此字段的调用的方法都被委派。这些方法将不被当前项目中的代码使用,但是项目之外的代码仍然可能需要这些方法。您可能希望保留这些委托方法以实现向后兼容。
- 单击 "预览" 以使 IntelliJ IDEA 搜索所选字段的用法,并在 "查找" 工具窗口中显示重构预览结果。在预览中,您可以将其用于重构或跳过它们。单击 "执行重构" 以将重构应用于所选的用法。
如果您不想查看使用情况,请单击 "重构"。在这种情况下,将立即更改使用实例。
如果受影响的文件是只读的,则可能会显示 "重构预览" 窗口。