JBuilder2005实现重构之类内部提炼

豆豆网   技术应用频道   2006年11月28日    社区交流

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

  1、提炼方法

  对于一个方法体庞大的方法,可以使用Extract Method将其一部分代码提炼到一个小方法中,并在原处添加提炼方法的调用。如果方法中存在重复的代码段,则这个代码段很有必须提炼为一个单独的方法,以便复用。

  要将一块代码提炼为一个单独的方法,只需要选中这块代码,并通过Ctrl+Shift+R->Extract Method调出提炼方法的重构对话框来进行操作。JBuilder会分析选中代码块中所引用的上下文变量,目标方法定义相应的参数,通过方法入参来传递这些变量。如下面的drive()方法在Horse.java中定义,其代码如下:

  代码清单 3 未提炼方法前的drive()方法

1. public void printQuotation(int amount)
2. {
3. printBanner();
4. System.out.println("单价:"+price);
5. System.out.println("购买只数:"+amount);
6. System.out.println("总价:"+(price * amount));
7. }

  我们希望将第4~6行代码块抽取到一个称为printDetail()的方法中:选中第4~6行的代码->Ctrl+Shift+R->Extract Method调出提炼方法对话框,如下图所示:

  

  图 12 提炼方法对话框

  在Method name中键入printDetail,按OK后,JBuilder将选中的代码块提炼到新的方法中,并在原方法处插入提炼方法的调用:

  代码清单 4 进行方法提炼后的代码

1. public void printQuotation(int amount)
2. {
3. printBanner();
4. printDetail(amount);//在源处插入对抽取出方法的引用
5. }
6. //抽取出来的方法
7. private void printDetail(int amount) {
8. System.out.println("单价:"+price);
9. System.out.println("购买只数:"+amount);
10. System.out.println("总价:"+(price * amount));
11. }

  printDetail()方法有一个入参用于传递代码块所引用的上下文变量,在第4行的调用处将变量通过printDetail()的amount入参传入。

责编:豆豆技术应用

正在加载评论...