`
liuheizi120
  • 浏览: 4032 次
社区版块
存档分类
最新评论

Extract Method 提炼方法

阅读更多
一、适用范围
  过长的函数或者一段需要注释才能让人理解用途的代码应该被独立构造为一个函数。
二、既得利益
  1、函数的粒度减小,函数被复用的机会更大。
  2、函数的粒度减小,函数覆写也会更容易。
三、做法
  1、创造一个函数,并以它的意图命名(以它做什么而不是怎样做命名)
  2、将提炼出的代码从源函数赋值到目标函数中。
  3、找出提炼出的代码中使用的源函数中的局部变量和源函数的参数。
  4、检查是否有仅用于被提炼代码段的临时变量。如果有,在目标函数中声明为临时变量。
  5、检查被提炼代码段,是否有局部变量的值被它改变。如果一个临时变量值被修改了,看看是否可以将被提炼代码段处理为一个查询,并将结果赋值给相关变量。如果很难这样做,或如果被修改的变量不止一个,你就不能将这段代码原封不动的提炼出来。先使用Split Temporary Variable、Replace temp with Query优化后再进行。
分享到:
评论

相关推荐

    重构_改善既有代码的设计[高清版]中文版

     Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split ...

    重构-改善既有代码的设计+中文版

     Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split ...

    重构——改善既有代码的设计

     Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split ...

    重构-改善既有代码的设计(中文版)

     Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split ...

    重构,改善既有代码的设计

     Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split ...

    重构 改善既有代码的设计

     Extract Method 提取方法   Inline Method 内联方法   Inline Temp 内联临时变量   *Replace Temp with Query 用查询方法代替临时变量   Introduce Explaining Variable 引入解释性变量   Split ...

    A SVM-based method to extract urban areas from DMSP-OLS and SPOT VGT data.pdf

    城市在发展的过程中十分重要,如何提取城市用于研究很具意义,SVM已经是一种比较成熟的分类方法,这篇文章主要讨论了如何使用SVM方法提取城市。

    java开发得oa系统源码-Extract-method-miner:提取方法矿工

    提取方法 内联方法 重命名方法 移动方法 移动属性 上拉法 上拉属性 下推法 下推属性 提取超类 提取接口 移动类 重命名类 提取和移动方法 更改包(移动、重命名、拆分、合并) RefactoringMiner 2.0 支持 移动和...

    代码重够方法 代码重够方法

    6.1.Extract Method(提炼函数) 6. 2. Inline Method(内联化函数) …… 6.7. Remove Assignments to Parameters (移除对参数的赋值)•Mechanics

    图像分割是图像分析的关键步骤,而水平集方法是图像分割的一项热门方法,它有着许多_噪声_图像_滤波

    图像分割是图像分析的关键步骤,而水平集方法是图像分割的一项热门方法,它有着许多算法不具有的优点,尤其可用于分割背景复杂信息难以提取的医学图像。这里是一些水平集分割图像的matlab的实现例子,希望可以帮到...

    重构-改善既有代码的设计 中文版.pdf

    6.1 Extract Method(提炼函数) 6.2 Inline Method(将函数内联化) 6.3 Inline Temp(将临时变量内联化) 6.4 Replace Temp With Query(以查询取代临时变量) 6.5 Introduce Explaining Variable(引入解释性变量...

    重构-改善既有代码的设计 中文版

    6.1 Extract Method(提炼函数) 6.2 Inline Method(将函数内联化) 6.3 Inline Temp(将临时变量内联化) 6.4 Replace Temp With Query(以查询取代临时变量) 6.5 Introduce Explaining Variable(引入解释性变量...

    Week5_Homework1

    重构基础:Java版练习描述练习1使用防卫语句取代条件表达式(Replaced the Nexted Conditional with Guard Clauses)重构遗留代码练习2使用提炼函数(Extract Method)手法重构遗留代码练习3使用抽象方法对象(Extract ...

    点云的特征提取

    This paper describes a new method to extract feature lines directly from a surface point cloud. No surface reconstruction is needed in advance, only the inexpensive computation of a neighbor graph ...

    PHP中extract()函数的妙用分析

    近日在看一个牛人的代码时,看到一个非常好用的函数:extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具,比方说,可以很方便的提取$_POST或者$_...

    重构-改善既有代码的设计

    6.1 Extract Method(提炼函数) 110 6.2 Inline Method(内联函数) 117 6.3 Inline Temp(内联临时变量) 119 6.4 Replace Temp with Query(以查询取代临时变量) 120 6.5 Introduce Explaining ...

    重构:改善既有代码的设计.[美]Martin Fowler.epub【文字版手机格式】

    6.1 Extract Method(提炼函数) 6.2 Inline Method(内联函数) 6.3 Inline Temp(内联临时变量) 6.4 Replace Temp with Query(以查询取代临时变量) 6.5 Introduce Explaining Variable(引入解释性变量) 6.6 Split...

    复杂图像的区域分割与图形特征提取之人脸识别

    人脸特征识别技术是基于生物的特征识别方式,每个人都有自己的人物特征,通过对人物的特征进行提取来达到识别人身份的目的。人脸识别技术采用的方法非常可靠,稳定性好,能够很好的对身份进行鉴别。目前生物特征识别...

    随机减量方法

    随机减量方法,从结构的随机振动响应中提取该结构的自由衰减振动信号-Random decrement method, the structure of the random vibration response of the structure to extract the free vibration signal ...

    vim-coffeescript-refactoring:在vim中为Coffeescript重构工具!

    ) 您知道 vimscript 请提出一个问题,我将合并经过测试的拉取请求 :)目前正在进行的工作 :CRAddParameter - Add Parameter :CRExtractMethod - Extract Method 现在您可以安装插件并尝试提取方法。 这是一个非常早期...

Global site tag (gtag.js) - Google Analytics