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



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


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

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

  2. YQCB项目介绍

    YQCB记账本软件 制作人:YQCB团队 团队简介:团队成立于2017年11月21日,由陈美琪,张晨阳,邢全阳,刘昭为四人组成. 陈美琪:团队灵魂人物,背负着巨大的压力带起整个团队. 张晨阳:团队领军 ...

  3. 第二次c++作业(觉得渐渐入门系列)

    其实说实话,我还是不敢很确定地说面向对象和面向过程这两种语言,我确实能分得开,但是我觉得倒是比以前好很多了.//(大概是谈了对象,知道了什么是面向对象编程) 1.从个人角度来说, a:面向过程就是-- ...

  4. .net 错误处理

    第一步在页面中写OnError方法: protected override void OnError(EventArgs e) { Exception ex = Server.GetLastError ...

  5. Communications link failure--分析之(JDBC的多种超时情况)

    本文是针对特定的情景下的特定错误,不是所有Communications link failure错误都是这个引起的,重要的区分特点是:程序是不是在卡主后两个小时(服务器的设置)后程序才感知到,才抛出了 ...

  6. laravel 字段映射问题,表单中提交字段与数据表中字段不一致

    在遇到提交表单时,表单中的name属性与数据表中的字段不一致,报错, 解决方法: 参考1:提交表单的时候,表单的name属性和数据表字段名称是一样的,这样有什么不妥么? 你数据库的信息给前端透露得越多 ...

  7. static关键字的新用法

    static关键字的新用法和总结: static这个关键字,也可以像“self”一样,代表“当前类”,用于访问一个类的“静态属性或静态方法”: 但, static,在应用中,更灵活,因此更常见! 因为 ...

  8. BZOJ 2427 软件安装(强连通分量+树形背包)

    题意:现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大).但是现在有 ...

  9. 题解 P1200 【[USACO1.1]你的飞碟在这儿Your Ride Is He…】

    cin其中有很多小众的函数与其他重叠 不妨拿来用用(作死不止) 划重点!!! 1.cin.get(),相当于c里面的getchar(),可以往里面输入字符 2.cin.getline(),相当于str ...

  10. 【纪念】NOIP2018后记——也许是一个新的起点

    如果你为了失去太阳而哭泣,那么你也将失去星星和月亮. —— 泰戈尔<飞鸟集> NOIP结束了,我挂了一道题……曾经在心中觉得怎么都不会考到的分数,就这么冷冷的出现在了我的成绩单上.的确是比 ...