快速业务通道

JBuilder2005实现重构之类内部提炼 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
t;Introduce Variable调出引入变量的对话框,如下图所示:

JBuilder2005实现重构之类内部提炼 - 编程入门网

图13

引入变量对话框

·Name:totalPrice 引入的变量名。

·Type:变量类型,不可变,JBuilder自动断定。

·Expression:你所选中的计算表达式。

·Include all read expressions:如果此选项勾选,则JBuilder将在方法范围内查找所有重复的表达式,一并替换。你没有什么理由不选择这个设置项。

按OK后完成重构,重构后代码如下所示:

代码清单 6 引入局域变量去除重复表达式

1. public void printAccountPrice(int amount) 2. { 3. double totalPrice = (amount * price); 4. if(amount <= 100) { 5. System.out.println("总价:" + totalPrice) ; 6. } 7. else if(amount <= 500) { 8. System.out.println("总价(打9折):" + totalPrice * 0.9) ; 9. } 10. else { 11. System.out.println("总价(打9折):" + totalPrice * 0.9) ; 12. } 13. }

特别的,如果一个表达式过于复杂,应当按特定意义划分成多个部分,每个部分抽取成一个独立的局域变量,以提高程序的可读性。如下面是计算n个圆锥的造价:

n*Math.PI*r*r*h/3*price

可以将其重构为以下的形式:

double s = Math.PI*r*r*h/3;//圆锥体积 totalPrice = n * s * price;//n个圆锥造价

JBuilder2005实现重构之类内部提炼(3)

时间:2010-03-20

4、内联变量

和内联方法一样,内联变量是提炼变量的反操作。有两种内联变量的方法,如果你将光标放置在变量的定义处进行内联变量重构,所有引用该变量的地方都被替换,变量定义语句被删除;如果你将光标置于引用变量处进行内联变量操作,则可以有两种选择:只对当前的位置进行变量内联或内联变量的所有引用处。 我们使用代码清单 6演示第二种内联变量的方法。将光标置于第5行代码的totalPrice处:Ctrl+Shift+R->Inline Variable调出内联变量的重构对话框,如下图所示:

JBuilder2005实现重构之类内部提炼 - 编程入门网

图14

内联变量对话框

·Variable:选择内联的变量。

·Expression:内联的表达式。

·Replace all occurrences:内联所有引用totalPrice变量的地方,否则只内联当前引用处。

点击OK完成变量的内联操作,内联后代码如代码清单 5所示。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号