重构是什么?
在代码写好之后改进它的设计。



重构分类:物理结构、类层次结构、类内部结构。


名称
快捷键
直译 作用范围
描述
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高级编程》






最新文章

  1. 如何在MATLAB R2010a 中使用Visual C++ 2010编译器
  2. JAVA EE的十三种技术
  3. js从0开始构思表情插件
  4. STM
  5. java.lang.NoSuchMethodError: 属于jar包冲突
  6. SublimeText快捷键大全(附GIF演示图)
  7. 获取手机内存\可用内存\单个APP运行内存
  8. Shell学习笔记 - 运算符
  9. ndk 编译 boost 库,支持serialization
  10. jedis异常:NoSuchElementException: Timeout waiting for idle object
  11. Springmvc @CookieValue实用
  12. C++报错
  13. Hdoj 1058.Humble Numbers 题解
  14. Oracle12c Release1 安装图解(详解)
  15. 使用flask框架实现web页面与数据库数据互联+常见的几种状态码
  16. java元注解 @Documented注解使用
  17. [TJOI2018]异或
  18. mysql压缩版的安装教程
  19. mongo 增删改查
  20. POJ1236学校网络——tarjan

热门文章

  1. OOP 1.3 动态内存分配
  2. DEBUG_NEW和THIS_FILE
  3. Spring – 缓存注解
  4. 整理sql server数据类型
  5. Alpha阶段敏捷冲刺 ADY8
  6. log4j配置独立日志方法
  7. npm和cnpm(windows)安装步骤
  8. CentOS 7 开放3306端口访问
  9. pyhcarm github
  10. BZOJ4950 Wf2017Mission Improbable(二分图匹配)