用工厂方法替换构造函数
此重构允许用返回类实例的工厂方法替换类构造函数。
执行重构
- 在代码编辑器中,将光标放置在要用工厂方法替换的类构造函数上。
- 单击右键展示上下文菜单,选择 。
- 在打开的“用工厂方法替换构造函数”对话框中,提供要创建的工厂方法的名称及其包含类。如下图所示:
图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); } } }