JBuilder2005实现重构之类内部提炼

http://tech.ddvip.com   2006年11月28日    社区交流

本文详细介绍JBuilder2005实现重构之类内部提炼

  2、内联方法

  内联方法是提炼方法的反操作,即用方法体替换方法调用,当方法是private且再没有其他地方调用该方法时,JBuilder在内联方法后,一并删除这个被内联的方法。如我们将光标放置代码清单 4的第4行printDetail()处:Ctrl+Shift+R->Inline Method,JBuilder直接将printDetail()方法体内联到第4行处,因为在Horse.java中没有其他地方调用printDetail()所以,该函数内在联后将从Horse.java中删除。内联后代码如代码清单 3所示。

  如果系统中所有函数都似乎只是对另一个函数的简单委托,形成过多的间接层,过多的委托将使程序的关系变得不易理解,此时可以使用内联方法去除这些无用的委托方法。

  3、提炼变量

  我们曾经说过“不同的方法有重复的代码块时,须考虑将其抽取为一个独立的方法,不同的类有重复的方法时,须考虑抽取到一个新的类中”,相似的,如果一个方法中多次重复出现同一个表达式,此时你可以考虑将这些相同的表达式提炼为一个局域变量,请看下面的代码: 代码清单 5 重复的表达式

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

  在printAccount()方法中表达式amount*price重复出现3次,我们可以在函数开始处引入一个局域变量,用这个变量替换这个表达式:Ctrl+Shift+R->Introduce Variable调出引入变量的对话框,如下图所示:

责编:豆豆技术应用

正在加载评论...