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

Extract Method 提炼函数

过长的函数或者一段须要凝视才干理解的代码,就将这段代码放进一个独立的函数中。

  • 函数粒度小,复用机会变大,覆写easy。
  • 高层函数如一系列凝视

关键看函数名称和函数本体之间的语义距离。

变清晰,做什么来命名

Inline Method 内联函数

有时可内联到一个大函数后,再从中提炼出组织合理的小型函数。

Inline Temp 内联暂时变量

return (order.basePrice>0); //可定义final确定是否被赋值一次

Replace Temp with Query 以查询代替暂时变量

Introduce Explain Variable 引入解释性变量

表达式有可能复杂且难以阅读。

Split Temporary Variable 分解暂时变量

做到每一个变量仅仅承担一个责任

Remove Assignments to Parameters 移除对參数的赋值

以一个暂时变量代替该參数的位置

Replace Method with Method Object 以函数对象代替函数

參数就变成了对象的字段,在这个对象中大型函数能够分解为多个小型函数。

Substitute Algorithm 替代算法

将函数本体替换为还有一个算法,复杂的能够先分解为小型函数

说明

  • 《重构-改善既有代码的设计》Martin Fowler 摘要: 第六章 又一次组织函数
时间: 2024-10-14 22:15:29

重构摘要6_又一次组织函数的相关文章

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

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

重构摘要8_重新组织数据

ASP.NET MVC路由(一) 前言 从这一章开始,我们即将进入MVC的世界,在学习MVC的过程中在网上搜索了一下,资料还是蛮多的,只不过对于我这样的初学者来看还是有点难度,自己就想看到有一篇引导性的资料可以帮助我初步的了解一下这部分知识,然后再去学习大神们写的资料.并不是说看完文章就会可以开发.可以怎么怎么样,没有!这些都没有,只是让你在脑海中把这部分内容记住它们的模型图以及一个大概的在MVC框架中的位置或者是整个系统中的位置,说了这么多的目的就是让大家更好的了解基础知识,有了它以后的进阶会

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

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

代码重构之重新组织函数

重新组织函数 一.提炼函数(Extract Method) 你有一段代码可以被组织在一起并独立出来,将这段代码放入一个独立的函数中,并让函数名称解释该函数的用途(以他做什么来命名). public void printOwing(){ int em=88; int outstanding=9999; //计算outstanding do { em--; outstanding+=em; } while (em==0); //pirnt outstanding System.out.println

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

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

重构摘要9_简化条件表达式

<重构-改善既有代码的设计>Martin Fowler 摘要: 第九章 简化条件表达式 Decompose Conditinal 分解条件表达式 你有一个复杂的条件(if-then-else)语句 从三个段落中分别提炼出独立函数 Consolidate Conditional Expression 合并条件表达式 你有一系列条件测试,都得到相同结果 将这些测试合并成为一个条件表达式,并将这个条件表达式提炼成为一个独立函数 检查用意更清晰,有时也不用这么做 Consolidate Duplica

重构摘要3_代码的坏味道

如果尿布臭了,就换掉它. 1.Duplicated Code 重复代码 Extract Method Pull Up Method Form Template Method --> Template Method 模式 Substitute Algorithm --> 函数算法替代 2.Long Method 过长的函数 "间接层"所带来的全部利益--解释能力.共享能力.选择能力--都是有小函数支持的. 真正关键在于一个好名字. 每当感觉需要以注释来说明点什么的时候,我们就

重构摘要2_重构原则

何谓重构 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提交其可理解性,降低其修改成本. 重构的目的是软件更容易理解和修改: 重构不会改变软件可观察的行为. 两顶帽子比喻 添加新功能 不修改既有代码,只管添加新功能,并通过测试 重构 不添加功能,只管改进程序结构 为何重构 重构改进软件设计 改进的重要方向就是消除重复代码. 重构使软件更容易理解 准确说出我所要的 利用重构来协助我理解不熟悉的代码 随着代码渐趋简洁,发现可以看到一些以前看不到的设计层面的东西. 重构帮助找到BUG

重构摘要7_在对象之间搬移特性

<重构-改善既有代码的设计>Martin Fowler 摘要: 第七章 在对象之间搬移特性 Move Method 搬移函数 你的程序中,有个函数与其所驻类之外的另一个类进行更多交流:调用后者,或被后者调用 在该函数最常引用的类中建立一个有着类似行为的新函数.将旧函数变成一个单纯的委托函数,或者将旧函数完全移除. Move Field 搬移字段 某个字段被其所驻类之外的另一个类更多地用到. 如果我需要对类做许多处理,保持小步前进是有帮助的. Extract Class 提炼类 某个类做了应该由