更新时间:2024-04-12 GMT+08:00
分享

提取方法对象

此重构允许您将任意代码片段单独移动到新类的方法中,以便您可以进一步将该方法分解为同一对象上的其他方法。

执行重构

  1. 在代码编辑器中,选择要提取到包装类的新方法的代码片段。
  2. 在主菜单或编辑器上下文菜单中,选择Refactor>Extract Method Object
  3. 在打开的Extract Method Object对话框中,提供重构选项。

    • Create inner class:选择以创建新的内部类。所有局部变量都转换为此类的字段。提供类的名称及其可见性修饰符。
    • Create anonymous class:选择以创建新对象并提供要创建的方法的名称。
    • Parameters区域中,在范围内选择变量作为方法参数。

  4. 单击Refactor以应用重构。

示例

例如,让我们将包含 println语句的for循环提取到Printer包装类的新方法中。

重构前

class ExtractMethodObject {
   public static void main(String[] args) {
      String text = "Hello World!";
      int n = 5;

      for (int i = 0; i < n; i++) {
         System.out.println(text);
      }
   }
}

重构后

class ExtractMethodObject {
   public static void main(String[] args) {
      String text = "Hello World!";
      int n = 5;

      new Printer(text, n).invoke();
   }

   private static class Printer {
      private String text;
      private int n;

      public Printer(String text, int n) {
         this.text = text;
         this.n = n;
      }

      public void invoke() {
         for (int i = 0; i < n; i++) {
            System.out.println(text);
         }
      }
   }
}

相关文档