auto commit

This commit is contained in:
CyC2018
2018-03-20 10:14:56 +08:00
parent fa890fd48b
commit 96e3b0ac73
2 changed files with 62 additions and 44 deletions

View File

@ -34,15 +34,15 @@
* [22. 过多的注释](#22-过多的注释)
* [四、构筑测试体系](#四构筑测试体系)
* [五、重新组织函数](#五重新组织函数)
* [1. Extract Method提炼函数](#1-extract-method提炼函数)
* [2. Inline Method内联函数](#2-inline-method内联函数)
* [3. Inline Temp内联临时变量](#3-inline-temp内联临时变量)
* [4. Replace Temp with Query以查询取代临时变量](#4-replace-temp-with-query以查询取代临时变量)
* [5. Introduce Explaining Variable引起解释变量](#5-introduce-explaining-variable引起解释变量)
* [6. Split Temporary Variable分解临时变量](#6-split-temporary-variable分解临时变量)
* [7. Remove Assigments to Parameters移除对参数的赋值](#7-remove-assigments-to-parameters移除对参数的赋值)
* [8. Replace Method with Method Object以函数对象取代函数](#8-replace-method-with-method-object以函数对象取代函数)
* [9. Subsititute Algorithn替换算法](#9-subsititute-algorithn替换算法)
* [1. 提炼函数](#1-提炼函数)
* [2. 内联函数](#2-内联函数)
* [3. 内联临时变量](#3-内联临时变量)
* [4. 以查询取代临时变量](#4-以查询取代临时变量)
* [5. 引起解释变量](#5-引起解释变量)
* [6. 分解临时变量](#6-分解临时变量)
* [7. 移除对参数的赋值](#7-移除对参数的赋值)
* [8. 以函数对象取代函数](#8-以函数对象取代函数)
* [9. 替换算法](#9-替换算法)
* [六、在对象之间搬移特性](#六在对象之间搬移特性)
* [1. Move Method搬移函数](#1-move-method搬移函数)
* [2. Move Field搬移字段](#2-move-field搬移字段)
@ -417,17 +417,23 @@ Java 可以使用 Junit 进行单元测试。
# 五、重新组织函数
## 1. Extract Method提炼函数
## 1. 提炼函数
> Extract Method
将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。
## 2. Inline Method内联函数
## 2. 内联函数
> Inline Method
一个函数的本体与名称同样清楚易懂。
在函数调用点插入函数本体,然后移除该函数。
## 3. Inline Temp内联临时变量
## 3. 内联临时变量
> Inline Temp
一个临时变量,只被简单表达式赋值一次,而它妨碍了其它重构手法。
@ -442,7 +448,9 @@ return basePrice > 1000;
return anOrder.basePrice() > 1000;
```
## 4. Replace Temp with Query以查询取代临时变量
## 4. 以查询取代临时变量
> Replace Temp with Query
以临时变量保存某一表达式的运算结果将这个表达式提炼到一个独立函数中将所有对临时变量的引用点替换为对新函数的调用。Replace Temp with Query 往往是 Extract Method 之前必不可少的一个步骤,因为局部变量会使代码难以提炼。
@ -466,7 +474,9 @@ double basePrice(){
}
```
## 5. Introduce Explaining Variable引起解释变量
## 5. 引起解释变量
> Introduce Explaining Variable
将复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名称来解释表达式用途。
@ -488,13 +498,17 @@ if(isMacOS && isIEBrower && wasInitialized() && wasResized) {
}
```
## 6. Split Temporary Variable分解临时变量
## 6. 分解临时变量
> Split Temporary Variable
某个临时变量被赋值超过一次,它既不是循环变量,也不是用于收集计算结果。
针对每次赋值,创造一个独立、对应的临时变量,每个临时变量只承担一个责任。
## 7. Remove Assigments to Parameters移除对参数的赋值
## 7. 移除对参数的赋值
> Remove Assigments to Parameters
以一个临时变量取代对该参数的赋值。
@ -509,13 +523,17 @@ int discount (int inputVal, int quentity, int yearToDate){
if (inputVal > 50) result -= 2;
```
## 8. Replace Method with Method Object以函数对象取代函数
## 8. 以函数对象取代函数
> Replace Method with Method Object
当对一个大型函数采用 Extract Method 时,由于包含了局部变量使得很难进行该操作。
将这个函数放进一个单独对象中,如此一来局部变量就成了对象内的字段。然后可以在同一个对象中将这个大型函数分解为多个小型函数。
## 9. Subsititute Algorithn替换算法
## 9. 替换算法
> Subsititute Algorithn
# 六、在对象之间搬移特性