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



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


名称
快捷键
直译 作用范围
描述
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. Coloring a Tree(耐心翻译+思维)

    Description You are given a rooted tree with n vertices. The vertices are numbered from 1 to n, the ...

  2. 第18次Scrum会议(10/30)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/30 17:19~17:38,总计19min.地点:东北师 ...

  3. Alpha-6

    前言 失心疯病源6 团队代码管理github 站立会议 队名:PMS 530雨勤(组长) 今天完成了那些任务 18:30~20:30 完成blob类下关于预测车辆下一个位置的函数 代码签入github ...

  4. [并查集] How Many Tables

    题目描述 Today is Ignatius' birthday. He invites a lot of friends. Now it's dinner time. Ignatius wants ...

  5. js中call(),apply(),以及prototype的含义

    最近段时间主要学习前端去了,然而所遇到的一些问题我觉得有必要去深究一下 prototype: 1 js中有三种表达方法 类方法,属性方法,原型方法 function People(name) { th ...

  6. OSG学习:阴影代码示例

    效果图: 代码示例: #include <osgViewer/Viewer> #include <osg/Node> #include <osg/Geode> #i ...

  7. 定时器应用-点击按钮,div向右移动

    需求是点击button,div就一直往右移动,给个条件left=800px就停止移动,通过定时器来控制. 代码如下: <!DOCTYPE html> <html> <he ...

  8. 6/2 sprint2 看板和燃尽图的更新

  9. 结对项目之对PIE的测试程序

    项目要求: 构造程序,分别是: 不能触发Fault. 触发Fault,但是不能触发Error. 触发Error,但是不能产生Failure. 结对对象:陈秋月  学号:2013110404  博客地址 ...

  10. paoding-rose 之 maven配置

    <dependency> <!-- junit 4.7 --> <groupId>junit</groupId> <artifactId>j ...