重构读书笔记-6_2-Inline_Method

重构第六章

  1. Inline Method(内联函数)

一个函数,其本体和其名称一样清楚易懂时,在函数调用点插入函数本体,然后移除该函数

Example:

boolean moreThanFiveLateDeliveries() {
    return _numberOfLateDeliveries > 5;
}

int getRating() {
    return moreThanFiveLateDeliveries() ? 2 : 1;
}

Analyze:

首先,当函数本体和函数的名称一样清楚明了的时候,使用Inline Method方法可以使得程序更加的简介、明了,避免了很多不必要的委托,不必要的间接访问,使得程序可读性更好
其次书中所讲相同,当程序中含有很多的不合理的函数存在的时候,使用Inline Method方法,将这些不合理函数集合到一个大的函数中,然后使用Extract Method等方法,设计更加合理的函数。增加程序的可读性

End:

int getRating() {
    return (_numberOfLateDeliveries > 5) ? 2 : 1;
}

简单的小示例:

重构前:

bool IsRmb(Type tp) {
    return type == Rmb;
}
double GetRMBRate() {
    return RMBRate;
}

double GetDollarRate() {
    return DollarRate;
}
bool IsDollar(Type tp) {
    return type == Dollar;


double GetMoney(int obj , Type tp) { 
    if (IsRmb(tp)) {
        return GetRMBRate()*obj;
    }
    if (IsDollar(tp)) {
        return GetDollarRate()*obj;
    }
}

重构后:

double GetMoney(int obj, Type tp) {
    if (type == Rmb) {
        return RMBRate*obj;
    }
    if (type == Dollar) {
        return DollarRate*obj;
    }
}

Conclusion:

自我感觉

Inline Method可以使得程序的结构更加的紧凑,避免为了解耦而解耦,使得程序在阅读时,能更加清晰的表达程序运行的结果、以及运行的过程
Inline Method方法在使用的时候比较的简单,但单独使用感觉一般,只有在委托层十分多的情况下,有着显著的重构效果。
而且,在使用Inline Method方法的时候,一定要注意将所有的引用点都考虑到,因为业务中分离小函数,很多情况是为了复用,如果有很多的地方都使用了这个函数,那使用该方法时,要注意每个引用点的替换,和衡量工作量。

注意

重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一,重构,第一个案例 这一章作者先用一个影片出租程序的案例,来演示重构的过程 每个Customer顾客可以租多部M...
    高稷阅读 10,857评论 1 19
  • chapter 1 重构,第一个案例 1.1 什么时候需要重构 需要为程序添加一个特性,但代码结构无法使自己方便的...
    VictorBXv阅读 2,062评论 0 1
  • 第一章 重构,第一个案例 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目的,那就先重构那个...
    文浩读书阅读 890评论 0 0
  • 阅读《重构》的笔记献上。 重构的定义 重构是在不改变软件可观察行为的前提下改善其内部结构。 重构的节奏 以微小的步...
    陈宇明阅读 11,671评论 13 64
  • 可以先看【推荐】:https://www.jianshu.com/p/d6ff54d72afb原文:http://...
    郭某人1阅读 1,870评论 0 0