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



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


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






Eclipse 重构功能的使用与重构快捷键的更多相关文章

  1. Eclipse 中的重构功能

    Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个普通的文本编辑器.使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏.有了重构,您可以只关注于 ...

  2. eclipse 重构功能。

    1. Rename Rename重构的功能就是重命名Java元素.虽然可以通过手动修改文件的文件名或其它Java元素的名称,但这种方式不会更新与此Java元素相关联的引用,用户必须手动查找和此Java ...

  3. 【转】Xcode重构功能怎么用我全告诉你

    原文网址:http://www.cocoachina.com/ios/20160127/15097.html 你会经常需要重构你的代码,让它有更好的结构,可读性或者提高可维护性.Xcode作为IDE其 ...

  4. [转]Xcode的重构功能

    Xcode提供了以下几个重构功能: Rename Extract Create Superclass Move Up Move Down Encapsulate 在菜单栏中的位置如下图: 在代码区里直 ...

  5. 【重构】AndroidStudio中代码重构菜单Refactor功能详解

    代码重构几乎是每个程序员在软件开发中必须要不断去做的事情,以此来不断提高代码的质量.Android Stido(以下简称AS)以其强大的功能,成为当下Android开发工程师最受欢迎的开发工具,也是A ...

  6. Eclipse中10个最有用的快捷键组合

    Eclipse中10个最有用的快捷键组合 (转) 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升. ...

  7. Eclipse中10个最有用的快捷键组合(转)

    Eclipse中10个最有用的快捷键组合   一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合.通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升.   ...

  8. Eclipse中10个最有用的快捷键组合(转)

    Eclipse中10个最有用的快捷键组合 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了.这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask ...

  9. Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? \Android Studio快捷键之代码提示

    问:Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? 答:有,as中的快捷键是Ctrl+Alt+V AndroidStudio和Eclipse常用快捷键对比 功能 ...

随机推荐

  1. “我爱淘”第二冲刺阶段Scrum站立会议3

    完成任务: 完成了注册界面的设计,以及部分代码,但是还没有完成服务器端的添加功能. 计划任务: 将注册功能实现了它,可以对数据库进行添加,在客户端实现分类功能,通过学院的分类查看书籍. 遇到问题: 分 ...

  2. 福大软工1816:Alpha事后诸葛

    福大软工·第十一次作业-Alpha事后诸葛亮 组长博客链接 本次作业博客链接 项目Postmortem 模板 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描 ...

  3. HDU 4055 Number String dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4055 Number String Time Limit: 10000/5000 MS (Java/O ...

  4. C语言调查问卷

    1.你对自己的未来有什么规划?做了哪些准备?毕业后应该不会从事编程类工作,目前有在学习感兴趣的东西.2.你认为什么是学习?学习有什么用?现在学习动力如何?为什么?学习就是把不懂变成懂,可以充实自己.没 ...

  5. 0517 SCRUM团队项目4.0

    题目 1.准备看板.形式参考图4.2.任务认领,并把认领人标注在看板上的任务标签上.先由个人主动领任务,PM根据具体情况进行任务的平衡.然后每个人都着手实现自己的任务.3.为了团队合作愉快进展顺利,请 ...

  6. lintcode-223-回文链表

    223-回文链表 设计一种方式检查一个链表是否为回文链表. 样例 1->2->1 就是一个回文链表. 挑战 O(n)的时间和O(1)的额外空间. 标签 链表 思路 找到链表中点后,翻转链表 ...

  7. Java 成员初始化顺序

    package com.cwcec.test; class Fu { int num = 5; //构造代码块 { System.out.println("Fu constructor co ...

  8. 关于java读取excle文件的相关方法 ;

    1.读取Excle文件内容的方法 拿过来可以直接用 : 2.参照 http://www.anyrt.com/blog/list/importexcel.html#6 更多知识请参考:http://ww ...

  9. AdminLTE 框架应用(一 )- 插件介绍

    原AdminLTE中的插件让我大部分都移除了,第一是占地方,需要的时候再引入也不迟,第二就是有些插件已经过时了,有比较好的插件可以替代.附上项目插件截图 1.bootstrap-addTabs 提供多 ...

  10. LoadRunner脚本增强技巧之参数化(一)

    参数化的方式有两种,一种通过File引入参数值,一种通过数据库引入参数值.本篇介绍File方式引入参数值. 一.File方式参数化过程 1.在脚本中找到需要做参数化的字符串,选中,右键点击,选择Rep ...