选择显示字体大小

在eclipse中创建新的重构功能


  对重构的强大支持是软件开发人员喜爱eclipse的一个最为重要的原因。而eclipse还有一个至少和重构不相上下的优点,那就是其近乎无懈可击的可扩展性。这两者的结合意味着我们可以根据自己的需要来创建展新的重构功能。

  介绍

  重构在现代软件开发过程中扮演着重要的角色,它能够减轻软件开发人员的工作负担,提高软件开发的生产效率。为了阐明重构的重要性,我们在这里引用了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属性。

  结果预览

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

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


图 1 输入参数


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范