最近公司开展读书月活动,免费提供书籍要求读完上交读书笔记一篇
我借了《重构——改善既有代码的设计》,在这边小小做下笔记
重构手法:
1、Extract Method 提炼函数
必须考虑局部变量的使用,基本分为1)没有局部变量影响 2)局部变量在抽取代码段中只是读取 3)局部变量在代码段中有修改这3中情况
做法:
创造一个新函数,根据这个函数的意图来对它命名(以它做什么命名,而不是以它怎么做命名)
将提炼出的代码从源函数复制到新建的目标函数中
仔细检查提炼出的代码,看看其中是否引用了“作用域限于源函数”的变量(包括局部变量和源函数参数)
检查被提炼代码段,看看是否有任何局部变量的值被它改变
将被提炼代码段中需要读取的局部变量,当做参数传给目标函数
处理完所有局部变量之后,进行编译
在源函数中,将被提炼代码段替换为对目标函数的调用
编译测试
2、Inline Method 内联函数
这种重构是清楚间接引用带来的复杂度的手法,目标函数必须足够简单,源函数已经足以说明函数用途
做法:
检查函数,确定它不具有多态性
找出这个函数所有被调用点
将这个函数的所有被调用点都替换为函数主题
编译测试
删除该函数的定义
3、Inline Temp 内联临时变量
做法:
检查给临时变量赋值的语句,确保等号右边的表达式没有副作用
如果这个临时变量并未被生声明为final,那就将它声明为final,然后编译
找到该临时变量的所有引用点,将他们替换为“为临时变量赋值”的表达式
每次修改后,编译并测试
修改完所有引用点后,删除该临时变量的声明和赋值语句
编译测试
4、Replace Temp with Query 以查询取代临时变量