用工厂方法替换构造函数
此重构允许用返回类实例的工厂方法替换类构造函数。
执行重构
- 在代码编辑器中,将光标放置在要用工厂方法替换的类构造函数上。
- 单击右键展示上下文菜单,选择。
- 在打开的“用工厂方法替换构造函数”对话框中,提供要创建的工厂方法的名称及其包含类。如下图所示:
图1 用工厂方法替换构造函数
- 单击“重构”以应用重构。
示例
作为示例,将InnerClass类构造函数替换为带有newInnerClass的工厂方法。
重构前
“com\refactoring\source\ReplaceConstructor.java”文件内容如下:
class ReplaceConstructor {
public static void main(String[] args) {
new InnerClass("Hello", "World").print();
}
private static class InnerClass {
private String message;
public InnerClass(String hello, String world) {
message = hello + ", " + world;
}
public void print() {
System.out.println(message);
}
}
}
重构后
“com\refactoring\source\ReplaceConstructor.java”文件内容如下:
class ReplaceConstructor {
public static void main(String[] args) {
InnerClass.newInnerClass("Hello", "World").print();
}
private static class InnerClass {
private String message;
private InnerClass(String hello, String world) {
message = hello + ", " + world;
}
public static InnerClass newInnerClass(String hello, String world) {
return new InnerClass(hello, world);
}
public void print() {
System.out.println(message);
}
}
}