`
ldzyz007
  • 浏览: 719964 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

eclipse 重构

阅读更多
Eclipse中的重构类型
       如果你看一下Eclipse的重构菜单,可以看到四部分。第一部分是撤销和重做。其他的三部分包含Eclipse提供的三种类型的重构。

       第一种类型的重构改变代码的物理结构,像Rename和Move。第二种是在类层次上改变代码结构,例如Pull Up和Push Down。第三种是改变类内部的代码,像Extract Method和Encapsulate Field。这三部分的重构列表如下。

类型1 物理结构
l         Rename
l         Move
l         Change Method signature
l         Convert Anonymous Class to Nested
l         Convert Member Type to New File

类型2 类层次结构
l         Push Down
l         Push Up
l         Extract Interface
l         Generalize Type (Eclipse 3)
l         User Supertype Where Possible
类型3 类内部结构
l         Inline
l         Extract Method
l         Extract Local Variable
l         Extract Constant
l         Introduce Parameter
l         Introduce Factory
l         Encapsulate Field



Rename:
       Rename用来改变一个Java元素的名字。虽然你可以手工改变Java文件Java元素的名字,但是这样不能自动更新所有引用它们的文件或Java元素。你必须在项目中搜索文件然后手工替换这些引用。很可能你就会漏掉一个或者改错一个。Rename重构会智能的更新所有有此引用的地方。
       有时候,Java元素的名字不是很明了,或者它的功能已经改变了。为了保持代码的可读性,该元素的名字也要更新。使用Rename重构,能够十分快捷的更新元素的名字和所有引用它的地方。
       要为一个Java元素改名,在包浏览视图或大纲视图选中该元素,从重构菜单中选择Rename项,或者使用快捷键Alt+Shift+R。Rename对话框会出现。在这里添入新的名字,选择是否更新该元素的引用。点击预览按钮,会打开预览窗口,在这里,你可以看到那些内容会被改变。点击OK按钮,重构结束。

Move
       Move和Rename很相似。它用来把元素从一个位置移动到另一个位置。它主要用来将类从一个包移动到另一个包。选中要移动的元素,从重构菜单中选择Move,或者使用快捷键,Alt+Shift+V,在弹出窗口中选择要移动的目的地。你仍然可以用预览功能检查一下有什么改变,也可以按OK按钮直接让其生效。


Change Method Signature
       更改方法签名能够改变参数名,参数类型,参数顺序,返回类型,以及方法的可见性。也可以添加,删除参数。
       要执行此重构,选择要重构的方法,选中重构菜单的更改方法签名项,会出现更改方法签名对话框。

在此对话框中选择方法的修饰词,返回类型,参数。参数的添加,修改,移动,删除可以通过右边的按钮控制。当添加新的参数时,会自动赋予默认值。凡是调用此方法的地方都会用此默认值作为参数输入。
       改变方法签名可能在方法中导致问题,如果有问题,当你点击预览或OK时,会被标记出来。
     

Move Members Type to New File
       此重构将嵌套类转为一个单独类。将会创建一个新的Java文件包含此嵌套类。选中要重构的类,在重构菜单上选择Move Member Type to New File项,在弹出的对话框中添入要创建的实例的名字。

     

Push Down
       此重构将算中的方法和成员从父类中移动到它的直接子类中,所有下推的方法都可选作为一个抽象方法留在父类中。下推重构对于重新构建项目设计十分有用。
         选择若干方法或成员,从重构菜单中选择下推项,弹出下推对话框。
       
       在此对话框中,可以分别选择方法或成员,所有选中元素都会移动到当前类的子类中。当点击Add Required按钮时,所有已选择元素所必需的元素也会自动选上,此行为并不能保证所有必须的元素都能自动选中,还是需要人工确认。当有方法被选中时,编辑按钮就会可用,点击编辑按钮,弹出编辑对话框。在其中可以选择为选中方法在当前类中遗留抽象方法,还是在当前类中删除这些方法。双击一天选中的方法,也可以打开编辑对话框。在方法的Action列点击,会出现一个下拉列表,可以在其中选择遗留抽象方法还是在当前类中删除方法。按回车键确认编辑结果。


Pull Up
       上移与下推类似,也是在类之间移动方法和成员。上移将方法或成员从一个类移动到它的一个父类中。选中若干个方法或成员,在重构菜单中选择上移项,上移向导马上会出现。
       在选择目标类多选框中,列出了当前类继承的所有父类。你只能将方法或成员移动到它们其中的一个里面。
       如果在选中方法的Action列,被设置成在目标类中声明抽象方法,那么在目标类的非抽象子类中创建必须的方法选项变为可选。当它选中时,目标类的所有子类,如果它们中没有选中的方法,则会为它们创建选中的方法。
       和在下推中一样,选择多个方法,点击编辑按钮,或者双击一个方法,都会打开编辑成员对话框。其中有两个选项,上移和在目标类中声明抽象方法。上移只是简单的复制方法到到父类中,并提供选择是否在当前类中删除该方法。在目标类中声明抽象方法会在父类中创建一个选中方法的抽象方法,如果父类不是抽象类则置为抽象类,最后选中方法留在当前类中。和在下推中一样,也可以点击Action列,可以在出现的下拉列表中选择。
       如果方法的Action列选为上移,在下一步的向导中,将会要求你选择是否在当前类中删除这些方法,选中的方法会在当前类中被删除。
       在向导的任意一步都可以按完成按钮,结束重构操作,此时按照默认规则进行重构。


Extract Interface
       提炼接口可以从一个存在的类中创建一个接口。你可以选择在接口中包含着个类的那些方法。选中一个类,从重构菜单选择提炼接口项,就可以打开提炼接口对话框。
       这此对话框中添入接口的名字,选择希望包含的方法,在这个列表里面只列出了公共方法。选中改变对类[当前类名]的应用为对接口的引用选择框,将把所有对当前类的引用更新为对此接口的引用。


Generalize Type
       泛化类型重构可以将一个声明对象的类型改变为它的超类,选择变量,参数,对象成员,方法返回类型,然后选择重构菜单的泛化类型项。在打开的泛化类型对话框,选择希望的新类型,然后点击完成按钮,结束重构。


Use Supertype Where Possible
       使用超类会将对一个特定类型的引用改变为对它的超类的引用。选择一个类,选中重构菜单的使用超类项,会打开使用超类对话框。选中希望的超类类型,点击完成按钮完成重构。重构后,instanceof 表达式也会做相应的替换。



Inline
       内联是用代码或值来取代调用方法的地方,静态final对象成员,或局部变量。比如说,如果你内联一个方法调用,这个调用的地方就会被替换为该方法体。要内联一个方法,静态final对象成员,局部变量,选中这些元素,在重构菜单中选择内联项,或者使用快捷键Alt + Ctrl + I。在随后打开的内联对话框,你可以选择是否要内联所有的调用,或者是选择的调用。如果选择所有调用,你还可以选择是否删除声明本身。

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资源类型,对应的快捷键。









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

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

相关推荐

    Eclipse中自动重构实现探索

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

    在eclipse中实施重构.pdf

    ### 在Eclipse中实施重构 #### 重构介绍 重构是一种重要的软件工程实践,指的是在不改变软件外部行为的前提下,对代码进行改进的过程。这一过程旨在优化代码结构,提高代码的可读性和可维护性,同时减少未来的修改...

    refactor-to-ec:将Java流重构为惯用的Eclipse集合的示例

    重构到ec 该项目包含将Java流重构为惯用的Eclipse集合的示例。重构集合:使Java Streams更精简,更干净描述寻找优化Java应用程序的方法? 是否希望看到切实的内存节省以及更清晰,更易读的代码? 是否希望为函数式...

    《软件开发工具》第9章使用Eclipse进行C\C++开发.ppt

    9.3 使用Eclipse重构功能 Eclipse的重构功能可以帮助开发者对代码进行结构上的修改,而不影响其功能。例如,它可以重命名变量、函数,提取方法,移动代码片段等,同时更新所有相关的引用,使得代码维护更加便捷。 ...

    2022自考软件开发工具部分简答题_编程题(Eclipse)宣贯.pdf

    * 重构功能:使用Eclipse重构功能,可以在不影响程序行为的情况下进行系统范围内的代码更改。 * 抽取方法:将程序中多次出现的代码段抽取出来形成方法,可以减少代码的长度并增加程序的可读性和易维护性,同时使方法...

    最新版自考软件开发工具复习资料(7-13章).pdf

    【Eclipse重构】 重构是不改变代码外在行为的情况下,改善代码结构的过程。Eclipse的重构功能包括重命名变量、抽取方法和抽取常量,提高代码可读性和维护性。 【Eclipse搜索】 Eclipse搜索功能分为基本的查找/替换...

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

    在本文中,我们将深入探讨如何在Eclipse集成开发环境中利用自动重构功能来优化Java代码。Eclipse的自动重构工具为开发者提供了强大的支持,包括但不限于重命名、移动方法、内联、抽取方法和更改方法特征符等功能。...

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

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

    Eclipse智能提示及快捷键

    Eclipse重构快捷键是指在代码重构时使用的shortcut键,它可以帮助用户快速完成代码重构任务。常用的Eclipse重构快捷键包括: 1. Alt+Shift+Z:撤销重构。 2. Alt+Shift+M:抽取方法。 3. Alt+Shift+L:抽取局部变量...

    在Eclipse中的重构的知识点

    在Eclipse中进行重构是提升代码质量和可维护性的重要手段,它涉及到一系列的代码修改操作,但不改变程序的功能。Eclipse提供了丰富的重构工具,帮助开发者高效地进行代码优化。以下是一些主要的重构知识点: 1. **...

    eclipse下的js插件

    在IT行业中,Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发领域享有盛誉。然而,Eclipse的功能并不仅限于Java,它也支持多种其他编程语言,包括JavaScript(JS)。针对JS开发,Eclipse提供了丰富...

    2018最新Eclipse下载安装包

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

    AngularJS Eclipse 1.2.0 插件下载

    8. **代码重构**:提供代码重构工具,帮助开发者安全地修改代码结构,而不影响应用的运行。 在压缩包中,`content.jar`和`artifacts.jar`通常包含了插件的运行时内容和元数据信息。`features`目录下的文件描述了...

    Eclipse基础教程(中文)

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

    Eclipse教程-Eclipse实战视频教程

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

Global site tag (gtag.js) - Google Analytics