重构是什么?
在代码写好之后改进它的设计。
重构分类:物理结构、类层次结构、类内部结构。
名称 |
快捷键
直译 | 作用范围 |
描述
Rename | Alt + Shift + R | 可以对任意变量、类、方法、包名、文件夹进行重新命名,并且所有使用到的地方会统一进行修改。 | ||
Move | Alt + Shift + V | 字段 | 把字段移到其他类、把类移到其他包 |
名称 |
快捷键
直译 | 作用范围 |
描述
Change Method Signature | Alt + Shift + C | 修改方法签名 | 方法 | 对方法进行操作,可以修改方法名、访问权限、增加删除方法参数、修改参数顺序、添加方法异常 |
Extract Method | Alt + Shift + M | 提取为方法 | 方法 | 任意选中一块代码,自动转换为方法,自动添加参数返回类型。 |
Extract Local Variable | Alt + Shift + L | 提取局部变量 | 字符/数字 | 通常用于表达式,把其中一个抽取为本地的变量,例如3 + 5 抽取为 int i = 3; |
Extract Constant | Ctrl+1 Extract to Constant | 提取常量 | 字符/数字 | 把任意位置的字符串或者数字抽取为一个静态全局常量。所有使用此字符或者数字的也会相应的被替换为使用常量。 |
Inline | Alt + Shift + I | 内联 | 方法 | 把调用此方法的地方直接替换成此方法的内容。选中任意方法才可使用此功能。(有All invocations 与 Only the selected invocation两个选项) |
名称 |
快捷键
直译 | 作用范围 |
描述
Convert Local Variable to Field | Alt + Shift + K | 局部变量转变为全局变量 | 局部变量 | 把局部变量转变为全部变量,可以重新修改变量名。 |
Convert Anonymous Class to Nested | 匿名类转换为嵌套内部类 | 匿名类 | 可以设置类型,内部包含字段类型等。 | |
Move Type to New File | 移动类到新的文件 | 嵌套类 | 以嵌套类创建一个新的类文件 |
名称 |
快捷键
直译 | 作用范围 |
描述
Extract Supperclass | 提取父类 | 提取选中字段或方法放置到其父类中(注意提取方法时,先提取其中使用的字段) | ||
Extract Interface | 提取接口 | 类 | 从一个类的方法生成一个接口(仅当前类的方法会变为接口,其他使用此方法的地方不会) | |
Use Supertype Where Possible | 尽可能使用父类型 | 类 | 把选中引用向上转型,变成其父类的引用 | |
Push Down | 下推 | 变量、方法 | 把选中方法从父类移到子类中,父类中响应方法变为抽象方法 | |
Pull Up | 上移 | 变量、方法 | 与Push Down相反,把子类的方法上移到父类中 |
名称 |
快捷键
直译 | 作用范围 |
描述
Extract Class | 提取为类 | 字段 | 把所有选中字段提到新类中,可以选择新建文件也可以使内部类 | |
Introduce Parameter Object | 引入参数对象 | 方法 | 把方法参数抽取为一个类(避免参数在方法内引用被修改异常) |
名称 |
快捷键
直译 | 作用范围 |
描述
Introduce Indirection | 让其他类可调用当前类某方法 | |||
Introduce Factory | 引用工厂 | 构造函数 | 用方法返回一个对象 | |
Introduce Parameter | 引入参数 | 将字段抽取为方法中的参数 | ||
Encapsulate Filed | 封装字段 | 为字段提供setter/getter方法 |
Introduce Factory
Selected entity is not a constructor invocation or definition.
名称 |
快捷键
直译 | 作用范围 |
描述
Generalize Declared Type | 把非原始对象字段(或方法参数)替换为其父类型。 | |||
Infer Generic Type Arguments | 为原始形式的那些类型推测恰当的泛型类型 |
Generalize Declared Type 可能出现的异常
Generalize Declared Type is not supported on primitive types. 不支持原始类型
名称 |
快捷键
直译 | 作用范围 |
描述
Migrate JAR File | ||||
Create Script | ||||
Apply Script | ||||
History |
参考资料
《Eclipse 3高级编程》