王朝网络
分享
 
 
 

在Eclipse中创建新的重构功能

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

对重构的强大支持是软件开发人员喜爱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 输入参数

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

图 2 显示条件检查

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

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

清单 1

package main;

public class TestSomething {

@Test(timeout=500)

public void testSomething(){}

}进入讨论组讨论。

总体结构和流程

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有