更新时间:2025-08-19 GMT+08:00
分享

用工厂方法替换构造函数

此重构允许用返回类实例的工厂方法替换类构造函数。

执行重构

  1. 在代码编辑器中,将光标放置在要用工厂方法替换的类构造函数上。
  2. 单击右键展示上下文菜单,选择重构 > 用工厂方法替换构造函数
  3. 在打开的“用工厂方法替换构造函数”对话框中,提供要创建的工厂方法的名称及其包含类。如下图所示:

    图1 用工厂方法替换构造函数

  4. 单击“重构”以应用重构。

示例

作为示例,将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);
      }
   }
}

相关文档