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



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


名称
快捷键
直译 作用范围
描述
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. 20181120-8 Beta阶段第2周/共2周 Scrum立会报告+燃尽图 06

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2414 版本控制地址    [https://git.coding.net ...

  2. 王者荣耀交流协会——第7次Scrum会议

    照片由刘耀泽同学拍摄 ,王露芝同学(外援)没有参加本次会议. 要求2 : 时间跨度:2017年10月19日 15:05 - 15:20 共计15分钟 要求3 : 地点:计算机楼107教室 要求4 : ...

  3. CSS中px和em属性的特点与区别

    详解px和em的特点和区别象素px是我们在定义CSS中经常用到的尺寸大小单位,而em在国外网站中经常被使用,px和em之间究竟有什么区别和特点呢?◆px像素(Pixel),相对长度单位.像素px是相对 ...

  4. php框架中常用的设计模式

    1.单例模式 //单例模式 class Demo { private static $obj; private function __construct() { } private function ...

  5. bootstrap 中的静态模式的控制按钮上的一个坑

    在使用modal时发现,代码:<button class="btn btn-danger" data-toggle="modal" data-target ...

  6. Css实现拖动效果

    效果如下,可以拖动滑块,数字显示的是离左侧距离:

  7. HDU4753 Fishhead’s Little Game——2013 ACM/ICPC Asia Regional Nanjing Online

    今天比赛又是做得好水的.被狂虐啊. 比赛两个多小时一直没出题,遒遒最先交的若干发都wa了.T_T 我独自在一遍苦思了1006这个题,还好最后把这个题目A掉了,不然又是深坑队友. 题目的意思我就不多说了 ...

  8. Android四大组件之Intent(续2)

    1.你如何通过一个intent来唤醒activity? this.startActivity(intent,request);      2.什么是显式.隐式的intents? 显式:指定组件名,通常 ...

  9. [四]SpringBoot 之 捕捉全局异常

    在class注解上@ControllerAdvice, 在方法上注解上@ExceptionHandler(value = Exception.class),具体代码如下: package me.shi ...

  10. BZOJ5016 Snoi2017一个简单的询问(莫队)

    容易想到区间转化成前缀和.这样每个询问有了二维坐标,莫队即可. #include<iostream> #include<cstdio> #include<cmath> ...