重构手法一重新组织函数

1. Extract Method 提炼方法

过长的函数或者有需要写注释才能让人理解用途的地方,提炼加强代码的清晰度

1)创造新函数命名

2)提炼代码拷入

3)检查代码中作用域范围的变量

4)局部变量值得改变

5)需要设置参数

6)编译替换测试

2.Inline Method 内联函数

内部代码和函数名称一样很清晰,应该去掉这个函数

1)检查函数 不具有多态

2)找出所有调用点

3)替换为代码本体

4)编译测试删除

3.Inline Temp 内联临时变量

临时变量只被赋值一次 被一个简单的表达式

1)检查确认赋值右边表达式没有副作用

2)尝试设置为final试试能否编译确认只被赋值一次

3)找到引用点替换

4)修改编译测试

4. Replace Temp With Query

以一个临时变量保存某一表达式的运算结果,替换后方便多处引用。

1)找出被赋值一次的变量

2)提取到独立函数

注意3和4的区别,3中是赋值给一个函数返回值,影响其他重构手法时候替换。4是为了方便调用,但最终结果都是类似去掉临时变量。

5. Introduce Explaining Variable引入解释性变量

增加临时变量,解释复杂的一些逻辑

1)声明final临时变量

2)运算结果的一部分替换

6. 分解临时变量

对每次赋值,创造一个独立对应的临时变量,除了循环变量和结果收集变量

1)增加final 修改前者名称

2)以赋值为界 检查

7. Remove Assignments to Parameters 移除对参数的赋值

代码对一个参数进行赋值,以一个临时变量来取代参数的位置。

1)建立临时变量

2)修改赋值语句

8.Replace Method with Method Object 以函数对象取代函数

大型函数,局部变量使用使你无法提取方法,将大型函数放入一个对象,这样局部变量就成了对象内字段,然后就可以在对象内将大型函数分解

强调了小型函数的优美。

9. Substitue Algorithm替换算法

将函数本体替换为另一个算法,更清晰的算法




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章