Eclipse中自动重构实现探索
技术  /  管理员 发布于 7年前   149
本文用eclipse的自动重构功能对一个程序实例进行重构,目的是探索Eclipse自动重构可以在多大程度上辅助重构这个过程。程序实例使用《Refactoring:Improving the Design of Existing Code》一书中的例子。
Eclipse的自动重构功能能够很好地支持各种程序元素的重命名,并自动更新相关的引用。Eclipse能够支持方法、字段在类之间移动,并自动更新引用。Eclipse较好地支持内联字段、函数的更新替换。Eclipse较好地支持抽取方法、变量等程序元素。
重构的过程是一个不断尝试和探索的过程。Eclipse的重构支持撤销和重做,并且能够预览重构结果,这些是很实用的功能。
Eclipse的重命名、抽取方法、移动、内联功能、更改方法特征符等代码结构级别的重构方法,是比较成熟同时也值得使用的功能。至于设计结构上的重构,eclipse还不能很好地支持。但是作者相信,自动重构的理念应该是"工具辅助下的重构工作",人仍然承担大部分重构工作。
一、预备工作
本文使用《Refactoring:Improving the Design of Existing Code》一书第一章的例子。重构前的代码及每一步重构后的代码见附件。读者最好配合《Refactoring:Improving the Design of Existing Code》一书阅读本文。
Eclipse使用如下版本:
同时安装了中文语言包。
二、重构第一步:分解并重组statement()
目的:
1、 把statement()函数中的swich语句提炼到独立的函数amountFor()中。
2、 修改amountFor()参数命名
重构方法:
Extract Method
Rename Method
方法:
1、选中swich语句的代码块,在右键菜单中选择"重构/抽取方法",出现参数对话框。Eclipse自动分析代码块中的局部变量,找到了两个局部变量:each和thisAmount。其中,each只是在代码块中被读取,但thisAmount会在代码块中被修改。按照重构Extract Method总结出来的规则,应该把each当作抽取函数的参数、thisAmount当作抽取函数的返回值。然而Eclipse并不做区分,直接把这两个变量当作抽取新方法的参数,如图。
选择"预览"按钮预先查看重构后的结果,符合我们最初的目的。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号