首页 > 代码库 > 代码重构之重新组织函数

代码重构之重新组织函数

重新组织函数

一、提炼函数(Extract Method)

           你有一段代码可以被组织在一起并独立出来,将这段代码放入一个独立的函数中,并让函数名称解释该函数的用途(以他做什么来命名)

public void printOwing(){
        
        int em=88;
        int outstanding=9999;
        
        //计算outstanding
        do {
            em--;
            outstanding+=em;
        } while (em==0);
        
        //pirnt outstanding
        System.out.println("Oh the outstanding is ");
        System.out.println(" "+outstanding);
    }

 

//提取后
    public void printOwing(){
        
        int em=88;
        int outstanding=9999;
        
        //计算outstanding
        do {
            em--;
            outstanding+=em;
        } while (em==0);
        
        //pirnt outstanding
        System.out.println("Oh the outstanding is ");
        System.out.println(" "+outstanding);
    }

        一)为什么这样做?

                 1.提取过长代码使之便于理解。

               2.细粒度代码,被复用的机会更大。

               3.代码粒度更细,覆写更容易。

       二)怎样做?

              关键是新函数的命名,要一他“做什么来命名”。

二、内联函数(Inline Method)

      如果一个函数的本体和其名称同样清楚易懂,就可以在函数调用点插入本体,删除该函数。

      

public int getRating(){
        return moreThan5Delivers()?1:0;
    }
    
    boolean moreThan5Delivers(){
        return numOfDelivers>5;
    }
//内联后
    public int getRating(){
        return numOfDelivers>5?1:0;
    }

 

      一)为什么这样做?

           间接性可以带来帮助,但非必要的间接性总让人不舒服。我们要移除不必要的间接层。

      二)怎样做?

           注意:确定函数不具有多态性。

              

 

代码重构之重新组织函数