`
peter.kong
  • 浏览: 57401 次
  • 来自: ...
社区版块
存档分类
最新评论

Eclipse提供的重构

阅读更多

本文介绍了Eclipse提供的各种重构。这些重构易于使用,可以确保代码重构更加方便安全。而且可以自动生成代码以提高生产率。

 

 
Extract Method
       如果方法中含有过多特定的操作,方法太长,或者其中的某段代码被多次使用,这时,可以用提炼方法重构将这部分代码提取到单独的方法中。在Eclipse中应用此重构方便快捷。
       选中要提炼的代码段,从重构菜单中选择提炼方法项,或者使用快捷键Alt + Shift + M。
       在提炼方法对话框中,输入新方法的名字,选择修饰词,选择是否让新方法抛出运行时异常。在底部提供了新方法的预览。
 
 
Extract Local Variable
       使用一个变量来代替一个表达式有很多好处。如果表达式在多处被使用,这样能够提高性能,而且也提高了代码的可读性。要把一个表达式提炼为局部变量,选择要提炼的表达式,从重构菜单中选择提炼局部变量项,或者使用快捷键Alt + Shift + L。
       在提炼局部变量对话框中输入新变量的名字,选择是否要替换所有的表达式,是否使此变量为final。在对话框的底部提供变量的预览。
      
Extract Constant
       提炼常量与提炼局部变量很相似,唯一的区别是提炼常量重构可以选择提炼出的常量的修饰词,而且此常量将作为类的成员变量。
 
Introduce Parameter
       介绍参数重构在方法中创建新的参数,然后用此新参数取代局部变量或者成员变量的实例。要是用此重构,选中方法中一个成员变量或局部变量的引用,然后从重构菜单中选择介绍参数项。
 
 
Introduce Factory
       工厂是用来创建新对象,返回新创建对象的方法。你可以选择一个类的构造方法,从重构菜单中选择介绍工厂项,应用此重构,为此类创建工厂方法。
      
介绍工厂对话框,输入工厂方法的名字和需要工厂方法创建的对象的名字。选择构造方法的修饰词是否为私有。
       点击OK按钮后,在指定的类中会出现此指定工厂方法。此方法创建一个当前类的实例,然后返回此实例。
 
Convert Local Variable to Field
       转换局部变量为成员变量重构,将方法内的变量声明移动到方法所在类中,使该变量对整个类可见。选择一个局部变量,从重构菜单中选择转换局部变量为成员变量项,随后打开配置的对话框。
      
       在此对话框中,添入成员变量的名字,选择修饰词,选择在哪里实例化此成员变量。随后的声明为静态声明为final 选择项是否可以使用,取决于实例化位置的选择情况。
 
Encapsulate Field
       要正确的实践面向对象编程,应该将成员变量的修饰词置为私有,提供相应的访问器来访问这些成员变量。但是这些操作很烦琐。如果使用了封装成员变量重构,则十分方便。选择一个成员变量,从重构菜单中选择封装成员变量项。
 
       在封装局部变量对话框中,添入Getter, Setter方法的名字,选择新方法在哪个方法后出现。选择合适的修饰词。应用了此重构会创建两个新方法,将此成员变量的修饰词置为私有,将对此成员变量的引用改变为对新方法的引用。
 
重构项列表:
       下表从Eclipse帮助中提取,列出了各种重构支持的Java资源类型,对应的快捷键。
 

名字
可应用的Java元素
快捷键
Undo
在一次重构后可执行
Alt + Shift + Z
Redo
在一次撤销重构后可执行
Alt + Shift + Y
Rename
对方法,成员变量,局部变量,方法参数,对象,类,包,源代码目录,工程可用。
Alt + Shift + R
Move
对方法,成员变量,局部变量,方法参数,对象,类,包,源代码目录,工程可用。
Alt + Shift + V
Change Method Signature
对方法可用。
Alt + Shift + C
Convert Anonymous Class to Nested
对匿名内部类可用。
 
Move Member Type to New File
对嵌套类可用。
 
Push Down
对同一个类中成员变量和方法可用。
 
Pull Up
对同一个类中成员变量和方法,嵌套类可用。
 
Extract Interface
对类可用。
 
Generalize Type
对对象的声明可用。
 
Use Supertype Where Possible
对类可用。
 
Inline
对方法,静态final类,局部变量可用。
Alt + Shift + I
 
Extract Method
对方法中的一段代码可用。
Alt + Shift + M
 
Extract Local Variable
对选中的与局部变量相关的代码可用。
Alt + Shift + L
 
Extract Constant
对静态final类变量,选中的与静态final类变量相关的代码可用。
 
Introduce Parameter
对方法中对成员变量和局部变量的引用可用。
 
Introduce Factory
对构造方法可用。
 
Convert Local Variable to Field
对局部变量可用。
Alt + Shift + F
Encapsulate Field
对成员变量可用。
 

       本文介绍了Eclipse提供的各种重构。这些重构易于使用,可以确保代码重构更加方便安全。而且可以自动生成代码以提高生产率。

       某些重构改变了某些类的结构,但没有改变项目中其他类的结构,如下推,上移重构。这时,就要确保项目中所有对改变元素的引用都要被更新。这也是为什么要有一个好的测试套。同时,你也要更新测试套中的对改变元素的引用。所以说,重构和单元测试的有机结合对于软件开发是多么的重要。

 

 

分享到:
评论
2 楼 fcoffee 2012-10-14  
maimode 写道
文章很规整,实用!
我现在的eclipse不知道为啥无论对方法还是包,只要一重命名就卡死了,很是郁闷啊


我最近也碰到类似的情况, 只要rename的元素是public的就会卡死, 用jconsole观察会发现一个名为ModalContext的线程和重构相关, 并且一直处于TIME_WAITING状态, 线程上下文中有wst jsp相关的类, 猜想可能是在重命名public的元素时会尝试在jsp文件中搜索对此元素的引用, 而搜索过程出错导致线程不能正常结束. 于是把workspace/.metadata/lplugins/org.eclipse.jst.jsp.core目录清空, 之后再做rename操作就正常了.
1 楼 maimode 2012-07-06  
文章很规整,实用!
我现在的eclipse不知道为啥无论对方法还是包,只要一重命名就卡死了,很是郁闷啊

相关推荐

    Eclipse中自动重构实现探索

    我们将通过一个具体的程序实例来展示Eclipse重构的几个关键步骤。 首先,Eclipse的重命名功能可以方便地更新所有相关引用,无论是方法、字段还是变量。在本例中,我们使用《Refactoring:Improving the Design of ...

    eclipse 重构

    "512572.htm"可能是一篇关于Eclipse重构的详细教程或文章,可能涵盖了如何使用Eclipse的重构功能,例如如何执行“提取方法”来减少代码重复,如何“重命名”变量或类以保持一致性,以及如何“移动”代码片段到更合适...

    Eclipse代码重构全攻略:提升代码质量与开发效率的实践指南

    Eclipse是一个开放源代码的、可扩展的集成开发环境(IDE)。最初由IBM公司开发,后来由Eclipse基金会管理。Eclipse主要用于Java语言的开发,但通过安装各种插件,它可以扩展支持其他编程语言和平台,例如C/C++、...

    在eclipse中实施重构.pdf

    Eclipse作为一款广泛使用的集成开发环境,提供了丰富的重构工具,可以帮助开发者高效地进行重构操作。 - **结构性重构** - **Rename**:重命名Java元素,包括包名、文件名、类名、方法名、变量名等。 - **Move**...

    2022年Eclipse中自动重构实现探索Java教程.docx

    Eclipse的自动重构工具为开发者提供了强大的支持,包括但不限于重命名、移动方法、内联、抽取方法和更改方法特征符等功能。这些功能使得重构过程更为高效和精确。 首先,我们来看一个基于《Refactoring:Improving ...

    在Eclipse中的重构的知识点

    Eclipse提供了丰富的重构工具,帮助开发者高效地进行代码优化。以下是一些主要的重构知识点: 1. **重复代码**:在发现重复代码时,可以使用`Extract Method`进行抽取,快捷键是`Alt + shift + M`。这将创建一个新...

    Eclipse教程-Eclipse实战视频教程

    同时,Eclipse的重构工具如提取方法、重命名变量等,能让你的代码更加整洁和易于维护。 6. 使用插件:Eclipse的一大优势在于其丰富的插件库,例如Mylyn用于任务管理,Subversive或Git插件用于版本控制,JUnit进行...

    eclipse下的js插件

    针对JS开发,Eclipse提供了丰富的插件来增强其编辑、调试和项目管理功能。下面将详细介绍"Eclipse下的JS插件"这一主题,以及如何利用这些插件提升JavaScript开发体验。 1. **JavaScript Development Toolkit (JDT)*...

    2018最新Eclipse下载安装包

    - **重构**:Eclipse提供了丰富的重构工具,如重命名、提取方法、移动文件等。 - **构建工具**:Maven和Gradle插件使得Eclipse能很好地管理依赖和构建流程。 - **调试**:Eclipse的调试器支持断点、单步执行、...

    打造基于Eclipse的IDE产品

    - Java重构:自Eclipse 3.0起,支持扩展实现自己的重构操作。 - 联机帮助:帮助框架和内置的Tomcat Server,提供服务器扩展能力。 - 版本控制:如CVS的支持。 - 在线升级:方便插件的在线升级。 5. 开发Eclipse插件...

    eclipse帮助文档,中文版本

    "eclipse帮助文档,中文版本"提供的是官方Eclipse IDE的中文参考指南,对于中国用户来说,它极大地简化了学习和使用Eclipse的过程。 1. **Eclipse IDE基础** Eclipse的基础界面由工作台(Workbench)组成,包括...

    Eclipse基础教程(中文)

    此外,Eclipse还支持代码重构,如重命名变量、提取方法等,这些都能帮助开发者保持代码的整洁和可维护性。 在调试方面,Eclipse提供了强大的调试工具。通过设置断点、单步执行、查看变量值、调用栈分析等手段,可以...

    eclipse+jdk1.8资源下载

    此外,JDK1.8还对日期和时间API进行了重构,提供了更直观、更易用的日期时间操作方式。 Eclipse与JDK1.8的结合使用,使得Java开发变得更加便捷。在Eclipse中,开发者可以直接配置JDK1.8的路径,利用Eclipse的自动...

    Eclipse – 整合开发工具

    为了提高开发效率,Eclipse提供了代码重构、自定义代码格式、产生getter与setter等辅助功能。代码重构功能让开发者可以安全地修改代码结构而不改变外部行为。此外,开发者还可以设置代码风格和格式,以符合团队的...

    eclipse-2019-06安装包.rar

    代码编辑器具有智能感知能力,能够自动完成代码、检查语法错误并提供重构建议。同时,JDT还支持Maven和Gradle等构建系统,使得项目管理更为便捷。 对于Android开发,Eclipse的Android Development Toolkit (ADT) ...

Global site tag (gtag.js) - Google Analytics