栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

重构--Java重构5式-抽替组改移-Idea重构快捷键操作说明

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

重构--Java重构5式-抽替组改移-Idea重构快捷键操作说明

1 抽-面向过程 1.1 代码段->抽为方法

Refactor | Extract|Method

2 替-inline 2.1 重复代码段->属性或变量(inline逆操作)

Refactor | Introduce Field -> 提取为类属性
Refactor | Extract|variabel -> 提取方法中的变量
将重复的代码段提取,用某个变量或者属性字段来表示。

2.2 Inline变量

Refactor | inline

2.3 Inline超类

Refactor | inline

2.4 inline内部类->匿名类

Refactor | inline

2.5 inline方法

Refactor | inline

2.6 inline构造器

Refactor | inline

3 组-面向类

组则是对数据组合和跟数据相关的过程的组合。组的核心就是面向对象的封装,包含下面三块:

  1. 数据依赖的切割
  2. 方法跟数据的相关性
  3. 方法之间的相关性
    切割数据的时候就是第一个,当你切割完数据后,看着那些方法该搬到新类的时候就是第二个。然后如果你想看看这些方法是不是放在里面很合适(属于一个上下文)或者如果你只是抽取个纯方法的类,就是第三个。
3.1 类属性直接操作->setter/getter封装

• 重构|封装字段(Refactor | Encapsulate Fields)

3.2 方法入参->类

Refactor|Parameter Object


3.3 方法返回值->返回类

Refactor| wrap method return value
若要包装返回值,请按照下列步骤操作:

  1. 在编辑器中打开所需的类,并将插入符号放在要包装其返回值的方法中。、

  2. 在主菜单或选择的上下文菜单上选择:重构|换行返回值。或者,在 Structure 视图中选择所需的方法,然后从那里触发重构。

  3. 在 “换行返回值” 对话框中,指定新包装类的名称和包,或者选择一个现有的兼容包装类。优先推荐使用内部类去包裹。

  4. 预览并应用更改。

3.4 匿名类->内部类

Refactor| Convert Anonymous to Inner
在 IntelliJ IDEA 中"将匿名转换为内部" 重构允许您将匿名类转换为命名的内部类。
如果要内联构造函数,请按照下列步骤操作:

  1. 将光标放在要重构的匿名类中。
  2. 在主菜单或选择的上下文菜单上,选择:Refactor| Convert Anonymous to Inner。将打开 “将匿名转换为内部” 对话框。
  3. 在 “类名称” 字段中,指定新内部类的名称。Convert Anonymous to Inner
  4. 在 “构造函数参数” 区域中,选择变量,这些变量将被用作内部类构造函数的参数。
  5. 单击 “确定” 以创建内部类。
3.5 属性和方法->delegate类

Refactor|Extract| Delegate
当类变得太大并且 “做太多事情” 时,将类的一些字段和方法提取到一个单独的新创建的类中。

  1. 在编辑器中打开该类,或者在 “项目” 工具窗口中选择它。
  2. 从主菜单或上下文菜单中选择:Refactor|Extract| Delegate
  3. 在打开的 “提取” 对话框中:
    指定要创建的类的名称和包。
    选择要包含在新类中的字段和方法。
    单击 “预览” 可在 “查找工具” 窗口中查看所选域或方法的用法。选择要包括在重构中的

    使用实例,然后单击 “执行重构”。
3.6 删除冗余的委托类方法

Refactor | Remove Middleman
替换在类中委托方法的所有调用,并直接对委托到的字段进行等效调用。此外,还可以自动删除类委托方法。

3.7 属性和方法->超类

Refactor | Extract | Superclass

3.8 方法->提取为接口

Refactor|Extract| Interface

  1. 在 “项目” 视图、“结构” 视图中选择类,或在编辑器中的类中的任意位置放置插入符号。
  2. 在主菜单或选择的上下文菜单上,选择:重构| 提取| 接口。此时将显示 “提取接口” 对话框。
  3. 要提取新的接口,请选择 “提取接口” 选项并指定新接口的名称。要重命名原始类并使其成为新创建的接口的实现,请选择 “重命名原始类” 并使用 “可能的接口” 选项,并指定原始类的新名称。IntelliJ IDEA 会将所有原始类的用法改为只在仍然需要的地方执行的用法。
  4. 指定新的接口所在的包。
  5. 在 “成员” 中选择要在接口中列出的类成员以形成接口区域。该列表显示了该类的所有方法,以及最终的静态字段(常量)。
  6. 在 JavaDoc 区域,选择要应用于 JavaDoc 的操作。若要将其保留在其所在的位置,请选择 “As” 选项。要将其复制到提取的接口,请选择 “复制” 选项。要将其移动到提取的接口,请选择 “移动” 选项。
  7. 单击 “重构” 以继续。
  8. 在准备就绪时单击 “重构”。如果 IntelliJ IDEA 在 “查找工具” 窗口中显示重构预览,请查看建议的更改。要提取接口并应用建议的更改,请单击 “执行重构”。
3.9 方法->类

Refactor|Methed Object

3.10 方法->函数式编程或匿名类

Refactor | Extract | Functional Parameter

3.11 提取方法中的常量

Refactor | Extract | Constant
可以提取到: -本类中作为类成员 -枚举类中作为成员

4 改-重命名 4.1 重命名

Refactor|rename (Shift+F6)

4.2 更改类签名

Refactor|Change Signature (ctrl+F6)
要更改类签名,请按照下列步骤操作:

  1. 在编辑器中,将光标放在要更改其签名的类的名称中。
  2. 执行以下操作之一:按 Ctrl+F6。
    在主菜单中选择:重构| 更改签名。
    从上下文菜单中选择:重构| 更改签名。

    3.在 “更改类签名” 对话框中,使用可用的控件来管理形式类型参数:
    要添加新参数,请单击或按 Alt+Insert。分别在名称和默认值字段中指定参数名称和默认类型。

    要删除参数,请选择参数并单击(Alt+Delete)。
    要在列表中向上或向下移动参数的位置顺序,请选择该参数,然后使用 (Alt+Up)或(Alt+Down)。
  3. 要立即执行重构,请单击“重构”。
    若要在实际执行重构之前查看预期的更改并进行必要的调整,请单击 “预览”。
4.3 更改方法签名

Refactor|Change Signature (ctrl+F6)
在 Java 中,可以使用更改方法签名重构为:

  • 更改方法名称、返回类型和可见性范围。
  • 添加新的参数并删除现有的参数。请注意,您还可以使用专用的提取参数重构来添加参数。
  • 重新排列参数。
  • 更改参数名称和类型。
  • 添加和删除异常。
  • 通过方法调用层次结构传播新的参数和异常。

在编辑器中,将光标放在要更改其签名的方法的名称中。
执行以下操作之一:按 Ctrl+F6。
在主菜单中选择:重构| 更改签名。
从上下文菜单中选择:重构|更改签名。
请注意,如果重构覆盖其他方法的方法,IntelliJ IDEA 建议从基类修改方法,或仅修改选定的方法。

使用 “参数” 选项卡上的控件管理方法参数:
要添加新参数,请单击(Alt+Insert)并在相应字段中指定新参数的属性。如有必要,请选择 Use Any Var 选项。

指定如何处理方法调用。为此,请选择以下方法调用选项之一:
如果你想要修改方法调用,请选择 “修改”。

如果要使现有方法调用保持不变,请通过重载方法选择 “委托”。

要立即执行重构,请单击 “重构”。
若要在实际执行重构之前查看预期的更改并进行必要的调整,请单击 “预览”。

5 移-移动类或方法 5.1 Package的移动

Refactor | Move

  1. 要将整个包移到另一个包中,请选择第一个选项,单击 “确定”,然后在 “移动” 对话框中指定移动选项。
  2. 要将目录移动到另一个源根目录,请选择第二个选项,单击“确定”,然后指定目标源根目录。
  3. 要将目录移动到其他目录,请选择第三个选项,单击“确定”,然后指定目标目录。
5.2 类的移动 5.2.1 类->静态类(切割数据依赖)

切割类与外部的实例依赖,如果类引用任何外部类字段,则 “使类静态” 对话框建议将外部类作为参数传递给内部类构造函数。
Refactor | Make Static

5.2.2 移动类到其他的package

Refactor | Move

5.2.3 移动类作为其他类的内部类

Refactor | Move

5.3 父子类之间的方法移动 5.3.1 子类pull到父类


5.3.2 父类push到子类


5.4 无关类之间的方法的移动 5.4.1 实例方法->静态方法

Refactor | Make Static

5.4.2 静态方法->实例方法

Refactor | Convert to Instance Method
在编辑器中,将插入符号放在要重构的方法的声明或用法上。该方法应该是静态的,其参数的类型应该是项目中的类。换句话说,你不能使用这样如String类型的参数。
执行以下操作之一:
注意:所选的方法必须是静态的,并且必须至少接收当前项目中包含的某一个类作为参数。
在 “重构” 菜单上,选择 “转换为实例方法(Convert to Instance Method)”。
右键单击该方法并选择:重构| 转换为实例方法(Refactor | Convert to Instance Method)。

将显示 “转换为实例方法” 对话框。
在 “选择实例参数” 列表中,在转换后选择您希望该方法属于的类。此类在方法内的所有用法都被替换。

若要更改已转换方法的可见性范围,请在 “可见性” 区域中选择新范围。默认情况下,转换后的方法将没有范围声明(等同于 public)。

预览并应用更改。

6 OOP重构 6.1 不使用范型->范型

Refactor| Generify

  1. 在 Project 或 Structure 视图中选择代码转换级别(可以是方法、类、包或目录),也可以将光标放在编辑器中的类或方法名称上。如果您想将泛型应用于单个代码片段,只需在编辑器中选择它。
  2. 在主菜单或选择的上下文菜单上,选择:重构| Generify。将出现 Generify 对话框。
  3. 定义重构选项。有关详细信息,请参阅对话框说明。
  4. 预览并应用更改。
6.2 构造器重构 6.2.1 构造器->工厂方法

Refactor|Replace Constructor with Factory Method

6.2.2 构造器->Builder

Refactor|Replace Constructor with Builder

6.3 继承->delegate

Refactor | Replace Inheritance With Delegation
创建了一个私有的内部类,它继承了以前的超类或接口。通过新的内部类调用父节点的选定方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999728.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号