代码重构之重新组织函数

重新组织函数

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

一)为什么这样做?

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

二)怎样做?

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

时间: 2024-08-04 11:24:25

代码重构之重新组织函数的相关文章

学习重构(2)-重新组织函数

1. Extract Method(提炼函数) 将代码段放进一个独立函数中,并让函数名称解释该函数的用途. 示例: void printOwing(double amount)  { printBanner(); //print details System.out.println("name: " + _name); System.out.println("amount: " + amount); } 重构为: void printOwing(double amo

QT之计算器代码重构

首先我们来讲讲为什么要进行代码重构?在一些大的项目中,代码重构是一个必不可少的步骤.因为项目大了,代码也就多了,后期的维护将会很难,所以我们要适当的进行代码重构,让代码的可复用性提高,使软件的设计和架构更加合理. 代码实现和代码重构有什么不同呢?代码实现的重点是功能的实现,而代码重构则是在实现功能的基础上进行再次优化,以提高代码质量. 那么什么样的代码需要重构呢?依据以往的项目开发经验来看呢,当发现项目中的重复代码越来越多时.代码功能越来越不清晰时.代码离设计越来越远时等,那么这时我们就该进行代

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

第6章 重新组织函数 6.1 Extract Method Long methods,因为包含太多信息和逻辑,不容易处理和修改.所以需要进行Extract Method. (1)场景 当一个函数过长,或者一段代码需要注释才能看懂,就可以考虑将其放入独立函数中. (2)优点 每个函数粒度小,被复用的几率大,被修改的难度也会低一些:高层函数逻辑分明. (3)做法 以"做什么"命名,而不是"怎么做".比如,printDetail(). 将源函数中的某一段提取到目标函数中.

重新组织函数--《重构》阅读笔记

1)寻找引用点时,最好使用工具,然后再人工review.在看到这个问题的时候,我估计应该是很久之前了.现在用IDE.这个要方便很多. 2)重新组织函数的方法和目标. 其实目标很简单.就是消灭长函数. 常用方法 Extract method Inline Method Replace Temp with Query Temporary Variable Replace Method with Method Object Remove Assignments to Parameters Substi

重构摘要6_重新组织函数

Extract Method 提炼函数 过长的函数或者一段需要注释才能理解的代码,就将这段代码放进一个独立的函数中. 函数粒度小,复用机会变大,覆写容易. 高层函数如一系列注释 关键看函数名称和函数本体之间的语义距离. 变清晰,做什么来命名 Inline Method 内联函数 有时可内联到一个大函数后,再从中提炼出组织合理的小型函数. Inline Temp 内联临时变量 return (order.basePrice>0); //可定义final确定是否被赋值一次 Replace Temp

重构摘要6_又一次组织函数

Extract Method 提炼函数 过长的函数或者一段须要凝视才干理解的代码,就将这段代码放进一个独立的函数中. 函数粒度小,复用机会变大,覆写easy. 高层函数如一系列凝视 关键看函数名称和函数本体之间的语义距离. 变清晰,做什么来命名 Inline Method 内联函数 有时可内联到一个大函数后,再从中提炼出组织合理的小型函数. Inline Temp 内联暂时变量 return (order.basePrice>0); //可定义final确定是否被赋值一次 Replace Tem

代码重构(一):函数重构规则

重构是项目做到 一定程度后必然要做的事情.代码重构,可以改善既有的代码设计,增强既有工程的可扩充.可维护性.随着项目需求的不断迭代,需求的不断更新,我们在项目中 所写的代码也在时时刻刻的在变化之中.在一次新的需求中,你添加了某些功能模块,但这些功能模块有可能在下一次需求中不在适用.或者你因为需求迭代与变 更,使你原有的方法或者类变得臃肿,以及各个模块或者层次之间耦合度增加.此时,你要考虑重构了. 重构,在<重构,改善既有代码的设计>这本经典的书中给出了定义,大概就是:在不改变代码对外的表现的情

重构笔记——内联函数

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42261333         在上一篇文章中介绍了"提炼函数".本文将介绍"内联函数"这种重构手法.         下面让我们一起来学习该重构手法把. 开门见山         发现:一个函数的本体与名称同样清楚易懂. 解决:在函数调用点插入函数本体,然后移除该函数. //重构前 public int getRati

java代码重构的方法学习

2,8阅读 第一章  第一个案例 在此案例中使用了, 方法的提取(extract method),方法的移动(move method),临时变量的清除,变量及函数名重构,switch类型重构(replace type code with state/strategy)等. 重构使得代码功能更加好的被复用,偏于维护和修改. 注意: switch语句的属性尽量不要是另一个对象的数据,最好在自己的数据基础上进行 第二章 重构原则 何为重构:(名词)不改变软件可观察行为的前提下,提供可理解性,降低其修改