操纵Eclipse自动重构特点的办法与缘由[Java编程]
本文“操纵Eclipse自动重构特点的办法与缘由[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
为什么重构?
重构是指在不改变程序功效的前提下改变其构造.重构是一项功效强盛的技术,但是履行起来需求倍加当心才行.主要的危险在于大概在不经意中引入一些错误,特别是在举行手工重构的时刻更是如此.这种危险引发了对重构技术的广泛批判:现代码不会崩溃的时刻为什么要改正它呢?
您需求举行代码重构的缘由大概有以下几个:传说中的第一个缘由是:需求担当为某个陈腐产品而开辟的年代长远的代码,大概忽然碰到这些代码.最初的开辟团队已经不在了.我们必须成立增添了新特点的新版本软件,但是这些代码已经无法理解了.新的开辟部队夜以继日地工作,破译代码然后映射代码,经过大量的筹划与计划之后,人们将这些代码分割成碎片.历经重重苦难之后,全部这些东西都按照新版本的要求归位了.这是豪杰般的重构故事,几近没有人能在阅历了这些之后活着报告这样的故事.
还有一种实际一些的情形是项目中加入了新的需求,需求对计划举行改正.至于是因为在最初的筹划历程中失策,还是由于采取了迭代式的开辟历程(比方矫捷开辟,大概是测试驱动的开辟)而在开辟历程中有意引入需求,这二者并没有实质性的辨别.这样的重构的规模要小得多,其内容普通触及通过引入接口大概抽象类来更改类的担当关系,以及对类举行分割和重新组织,等等.
重构的最后一个缘由是,当存在可用的自动重构工具时,可以有一个用来预先生成代码的快速方法——就好比在您无法肯定若何拼写某个单词的时刻,可以用某种拼写查抄工具输入这个单词.比方说,您可以用这种平淡无奇的重构办法生成 getter 和 setter 办法,一旦熟习了这样的工具,它便可认为您节俭很多的时间.
Eclipse 的重构工具无意举行豪杰级的重构——合适这种规模的工具几近没有——但是不管能否用到矫捷开辟技术,Eclipse 的工具关于普通程序员改正代码的工作都具有没有法衡量的代价.毕竟任何复杂的操作只要可以自动举行,便可以不那么沉闷了.只要您知道Eclipse实现了什么样的重构工具,并理解了它们的实用情形,您的生产力就会得到极大的提高.
要降低对代码造成破坏的风险,有两种重要的办法.第一种办法是对代码举行一套完好完好的单元测试:在重构之前和之后都必须通过这样的测试.第二种办法是利用自动化的工具来举行重构,比方说Eclipse的重构特点.
将完好的测试与自动化重构结合起来就会越发有效了,这样重构也就从一种奥秘的艺术变成了有效的平常工具.为了增添新的功效大概改良代码的可保护性,我们可以在不影响原有代码功效的底子上疾速且安全地改变其构造.这种本领会对您计划和开辟代码的方法产生极大的影响,即就是您没有将其结合到正式的矫捷办法中也没有关系.
Eclipse 中重构的范例
Eclipse 的重构工具可以分为三大类(下面的次序也就是这些工具在 Refactoring 菜单中呈现的次序):
对代码举行重命名以及改变代码的物理构造,包含对属性、变量、类以及接口重新命名,还有移动包和类等.
改变类一级的代码逻辑构造,包含将匿名类改变成嵌套类,将嵌套类改变成顶级类、按照具体的类成立接口,以及从一个类中将办法大概属性移到子类大概父类中.
改变一个类内部的代码,包含将部分变量变成类的属性、将某个办法中选中部份的代码变成一个独立的办法、以及为属性生成 getter 和 setter 办法.
还有几个重构工具并不能完好归入这三个种类,分外是 Change Method Signature,不过在本文中还是将这个工具归入第三类.除了这种例外情形以外,本文下面几节都是按照上面的次序来谈论Eclipse重构工具的.
物理重组与重命名
明显,您即便没有分外的工具,也可以在文件系统中重命名文件大概是移动文件,但是假如操作对象是 Java 源代码文件,您就需求编辑很多文件,更新此中的 import 或 package 语句.与此近似,用某种文本编辑器的搜索与替换功效也可以很简单地给类、办法和变量重新命名,但是这样做的时刻必须非常当心,因为差别的类大概具闻名称类似的办法大概变量;如果重新到尾查抄项目中全部的文件,来保证每个东西的标识和改正的精确性,那可真够乏味的.
Eclipse 的 Rename 和 Move 工具可以非常聪明地在整个项目中完成这样的改正,而不需求用户的干与.这是因为Eclipse可以理解代码的语义,从而可以辨认出对某个特定办法、变量大概类名称的引用.简化这一任务有助于确保办法、变量和类的名称可以清楚地指导其用处.
我们常常可以发现代码的名字不得当大概令人简单曲解,这是因为代码与最初计划的功效有所差别.比方说,某个用来在文件中查找特订单词的程序大概会扩大为在 Web 页面中通过 URL 获得 InputStream 的操作.假如这一输入流最初叫做 file ,那么就应当改正它的名字,以便能反映其新增的越发普通的特点,比方说 sourceStream .开辟人员常常无法成功地改正这些名称,因为这个历程是非常混乱和乏味的.这当然也会把下一个不得不对这些类举行操作的开辟人员弄胡涂.
要对某个 Java 元素举行重命名,只需求简单地从 Package Explorer 视图中点击这个元素,大概从Java 源代码文件中选中这个元素,然后挑选菜单项 Refactor > Rename.在对话框中输入新的名称,然后挑选能否需求Eclipse也改变对这个名称的引用.实际显示出来的切当内容与您所选元素的范例有关.比方说,假如挑选的属性具有 getter 和 setter 办法,那么也便可以同时更新这些办法的名称,以反映新的属性.图1显示了一个简单的例子.
图 1. 重命名一个部分变量
以上是“操纵Eclipse自动重构特点的办法与缘由[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |