美文网首页
重构读书笔记-Extract_Method

重构读书笔记-Extract_Method

作者: MR_Model | 来源:发表于2019-06-04 19:53 被阅读0次

重构第六章

  1. Extra Method(提炼函数)

当看到一个过长函数或者需要注释才能看懂的函数的时候,将代码放进一个独立函数中
动机(优点):
1.每个函数的粒度都很小
2.函数之间的复用机会更大
3.函数的重写(override)更容易些

Example:

void printOwing(){
    Enameration e = _order.elemets();
    double outstanding =0.0;
    //print banner;
    System.out.printIn(){"*****************"};
    System.out.printIn(){"***Customer******"};
    System.out.printIn(){"*****************"};

    //calculate outstanding
    while(e.hasMoreElements()) {
        Order each =(Order) e.nextElement();
        outstanding += each.getAmount();
    }
    //print details
    System.out.printIn("name:",_name);
    System.out.printIn("amount": outstanding);
}

Analyse:

示例中函数 printOwing()完成了诸如: print banner、calculate outstanding、print details的功能。
维护者必须阅读完整的函数,才能够知晓这个函数的具体含义。此时我们就需要Extract Method(提炼函数),使得函数的功能唯一,同时使得函数更加的精炼,提升可读性,可维护性。

首先:将3个功能提炼出来

printBanner:实现打印Banner的作用
void printBanner(){
    System.out.printIn(){"*****************"};
    System.out.printIn(){"*****Customer****"};
    System.out.printIn(){"*****************"};
}

printDetails:实现打印细节的作用
void printDetails(){
    System.out.printIn("name:",_name);
    System.out.printIn("amount": outstanding);
}

getOutstanding:实现支出的计算功能
double getOutstanding() {
    Enameration e = _order.elemets();
    double res =0.0;
    while(e.hasMoreElements()){
        Order each =(Order) e.nextElement();
        outstanding += each.getAmount();
    }
    return res;
}

其次:将之前函数的功能处,替换为新的函数调用

void printOwing() {
    printBanner();
    double outstanding = getOutstanding();
    printDetails(outstanding);
}

Conclusion:

Extract Method(提炼函数)功能可以实现一个过长函数的提炼,是的程序拥有更好的可读性。
不过不能过度的使用Extract Method(提炼函数),使得程序太过冗杂,程序粒度太碎;
同时,Extract Method要求编程人员对变量的命名拥有一定的功力,使得函数的名称和具体的功能有一个清晰的映射关系,可以强化代码的清晰度

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!

相关文章

  • 重构读书笔记-Extract_Method

    重构第六章 Extra Method(提炼函数) 当看到一个过长函数或者需要注释才能看懂的函数的时候,将代码放进一...

  • 重构:读书笔记

    重构读书笔记 第一章 重构,第一个案例 第二章 重构原则 2.1 何为重构 重构(名词):对软件内部结构的一种调整...

  • 重构读书笔记

    title: 重构读书笔记date: 2019/11/05 重构:对软件内部结构的一种调整,目的是在不改变软件可观...

  • 《重构》读书笔记

    《重构》读书笔记 总览 第一部分 第一章从实例程序出发,展示设计的缺陷,对其重构可以了解重构的过程和方法。 第二部...

  • 《危机与重构:唐帝国及其地方诸侯》读书笔记

    《危机与重构:唐帝国及其地方诸侯》读书笔记 李碧妍先生的《危机与重构:唐帝国及其地方诸侯》一书。是以唐代后期的藩镇...

  • 《重构--改善既有代码的设计》读书笔记

    《重构--改善既有代码的设计》读书笔记 1为什么重构有用 所有有意义的事情总结下来,都是完成了一个有用的功能,或者...

  • 个人技术文章系列汇总(csdn)

    Java基础 Effective Java读书笔记 java 几种加载驱动的方法 《重构改善既有代码的设计》代码的...

  • 《重构》读书笔记

    chapter 1 重构,第一个案例 1.1 什么时候需要重构 需要为程序添加一个特性,但代码结构无法使自己方便的...

  • 重构-读书笔记

    有一本书叫做《重构 改善既有代码的设计 》,个人感觉写的还蛮不错的,在读这本书时候做的一些读书笔记,分享给大家: ...

  • 重构-读书笔记

    重构 概念:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构技术就是以微小的步伐修改程序。...

网友评论

      本文标题:重构读书笔记-Extract_Method

      本文链接:https://www.haomeiwen.com/subject/prgrxctx.html