代码重构之重新组织函数

Posted Shadowplay

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码重构之重新组织函数相关的知识,希望对你有一定的参考价值。

重新组织函数

一、提炼函数(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;
    }

 

      一)为什么这样做?

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

      二)怎样做?

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

              

 

以上是关于代码重构之重新组织函数的主要内容,如果未能解决你的问题,请参考以下文章

重构之--重新组织函数的几种方法

重构手法之重新组织函数

重构改善既有代码的设计--第6章--重新组织函数

PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数

重构·改善既有代码的设计.03之重构手法(上)

重构手法之重新组织数据