快速业务通道

在Eclipse中创建新的重构功能 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23

在Eclipse中创建新的重构功能

时间:2010-12-02 IBM 志甘 春郭迎 林刘岳

1 介绍

重构在现代软件开发过程中扮演着重要的角色,它能够减轻软件开发人员的 工作负担,提高软件开发的生产效率。为了阐明重构的重要性,我们在这里引用 了developerWorks上David Carew提供的关于重构的教程中的一段话:

现在,一个开发者的工作大部分在于对现有的代码进行修改,而不是起草写 新的代码。简单的修改可能包括对现有代码进行添加。然而,多样化的修改或扩 展的改变会使软件内部结构开始恶化。重构改变软件的内部结构使得软件更容易 理解并且在不需要改变其显著的行为的情况下使得修改的代价也更小。

在Java软件开发过程中,通过使用Eclipse提供的重构工具,我们至少获得了 以下好处:

1. 最终产品更为健壮:我们对程序代码的修改将不太可能出错,出现遗漏修 改的可能变少,即使出现问题也能够通过Undo功能回退到重构前的状态。

2. 提高了生产效率。通常一次重构能够完成对程序代码的多处改动。最为明 显的例子可能是Eclipse提供的Rename重构,它能够在修改名称的同时相应的更 改所有的引用。

Eclipse 为我们提供了多种实用的重构功能,在软件开发过程中使用这些重 构能够给我们带来极大的好处。然而,针对每个开发人员的特殊需要,总有一些 迫切需要的功能是不能通过已有的重构来获得的。这个时候,我们可以对 Eclipse平台进行一些扩展,创建适应我们自己需要的重构。如果这个重构恰好 能够符合大多数人的需要,我们也可以像其他Eclipse的contributor一样,将我 们的重构贡献给Eclipse社区。

接下来,我们将通过一个例子来展示如何在Eclipse中创建新的重构功能。我 们这里创建的重构将用于迁移JUnit的测试用例。我们知道,在当前版本的 JUnit中,一个用于测试的函数必须以字符串"test"作为方法名称的开始。而在 即将来到的JUnit 4中,一个"@Test"的Annotation被用于标明方法是一个测试方 法。我们将要创建的重构将完成这个迁移工作,即在所有的以"test"开始的方法 之前加上"@Test"标记。@Test Annotation还可以包含一个timeout属性用来规定 方法的最大执行时间,我们在向导中提供了一个页面供用户选择是否需要 timeout属性。

2 结果预览

为了给读者一个直观的感受,我们下面首先介绍本文中例子的实际运行效果 。在阅读完本文之后,读者朋友也能够顺利的完成类似的功能。

启动例子程序提供的Refactor之后,我们获得了一个由三个页面组成的向导 。在第一个页面中,用户可以选择是否需要timeout参数,并且用户能够设置 timeout参数的值。

图 1 输入参数

当用户输入参数完毕之后,通过单击Next按钮我们将进入下一个页面。向导 将进行初始条件检查和最终条件检查,并将检查的结果反馈给用户。在图 2中我 们可以看到,初始条件和最终条件都正常,因此我们可以进入下一步。

图 2 显示条件检查

在Eclipse中创建新的重构功能(2)

时间:2010-12-02 IBM 志甘 春郭迎 林刘岳

接下来是预览窗口(图 3),向导用直观的界面显示了在应用向导之后,我 们将会对源代码造成怎样的改动。用户可以在这个页面中判断最终的修改是否符 合自己的需要。另外,用户也能够选择性的取消对某些文件的修改。

当用户检查预览页面确认没有问题之后,用户可以按下Finish按钮从而完成 重构。这个时候,源代码会发生修改,最后的结果如下所示:

清单 1

package main; public class TestSomething {   @Test(timeout=500)   public void testSomething(){   } }

3 总体结构和流程

在Eclipse中,一个重构操作主要由以下三个部分组成:

1. RefactoringWizard类:RefactoringWizard提供了向导式的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号