本文介绍了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提供的各种重构。这些重构易于使用,可以确保代码重构更加方便安全。而且可以自动生成代码以提高生产率。
某些重构改变了某些类的结构,但没有改变项目中其他类的结构,如下推,上移重构。这时,就要确保项目中所有对改变元素的引用都要被更新。这也是为什么要有一个好的测试套。同时,你也要更新测试套中的对改变元素的引用。所以说,重构和单元测试的有机结合对于软件开发是多么的重要。
分享到:
相关推荐
Eclipse中自动重构实现探索 重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码,有时非正式地称为「清理干净」。
在eclipse中实施重构.pdf 在eclipse中实施重构.pdf 在eclipse中实施重构.pdf 在eclipse中实施重构.pdf
NULL 博文链接:https://zfms.iteye.com/blog/1326866
为了阐明重构的重要性,我们在这里引用了developerWorks上DavidCarew提供的关于重构的教程中的一段话:现在,一个开发者的工作大部分在于对现有的代码进行修改,而不是起草写新的代码。简单的修改可能包括对现有代码...
是一些介绍在Eclipse中的重构的机制的
2022年Eclipse中自动重构实现探索Java教程.docx
重构到ec 该项目包含将Java流重构为惯用的Eclipse集合的示例。重构集合:使Java Streams更精简,更干净描述寻找优化Java应用程序的方法? 是否希望看到切实的内存节省以及更清晰,更易读的代码? 是否希望为函数式...
当调用重构过程时,ReFit Eclipse插件会执行Fit测试规格(http://fit.c2.com)和相关代码的自动重构。 注意:该项目仍处于Beta版,但我们认为足够稳定,可以使用。 你试一试。 有关项目,安装和使用说明的更多信息,...
本书主要介绍当前最流行的Java开发环境Eclipse的特性与使用精要。...第二部分完全侧重于敏捷开发的介绍,展示了如何用Eclipse快速实现小组所有权、重构、持续测试、持续集成以及其他敏捷开发操作。
本书主要介绍当前最流行的Java开发环境Eclipse的特性与使用精要。...第二部分完全侧重于敏捷开发的介绍,展示了如何用Eclipse快速实现小组所有权、重构、持续测试、持续集成以及其他敏捷开发操作。
全新的Eclipse内置编译器强化了语言特性,代码搜索功能和重构功能,用户可以通过Quick Assist和Clean Up功能方便地将匿名类和等价Lambda表达式相互转换,对于lambda表达式,Eclipse还提供了全新的formatter。...
全新的Eclipse内置编译器强化了语言特性,代码搜索功能和重构功能,用户可以通过Quick Assist和Clean Up功能方便地将匿名类和等价Lambda表达式相互转换,对于lambda表达式,Eclipse还提供了全新的formatter。...
Eclipse Web开发从入门到精通,在Eclipse中重构,Eclipse插件的使用
本文将带您手把手步入Eclipse的广阔天地,详细介绍在Eclipse下如何开发普通Java程序,Web应用,J2EE应用,手机Java程序,以及如何进行单元测试,重构,配置CVS等详细内容。 我的开发环境是JDK1.4.2+Eclipse3.0+...
FJDetector 作为 Eclipse 插件实现,扩展了 Eclipse 的重构引擎。 它要求您使用 Eclipse(版本 >= 4.2,Juno with jre >= 1.7)。 FJDetector是叉子 ,来自伊利诺伊大学的乡亲。 欲知更多详情,请查看 CTADetector...
自动重构Java代码库的Eclipse插件_Java_HTML_下载.zip