`
nbkangta
  • 浏览: 423518 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

《重构——改善既有代码的设计》读书笔记

    博客分类:
  • Java
 
阅读更多

最近公司开展读书月活动,免费提供书籍要求读完上交读书笔记一篇

 

我借了《重构——改善既有代码的设计》,在这边小小做下笔记

 

重构手法:

1、Extract Method 提炼函数

     必须考虑局部变量的使用,基本分为1)没有局部变量影响 2)局部变量在抽取代码段中只是读取 3)局部变量在代码段中有修改这3中情况

做法:

      创造一个新函数,根据这个函数的意图来对它命名(以它做什么命名,而不是以它怎么做命名)

将提炼出的代码从源函数复制到新建的目标函数中

仔细检查提炼出的代码,看看其中是否引用了“作用域限于源函数”的变量(包括局部变量和源函数参数)

检查被提炼代码段,看看是否有任何局部变量的值被它改变

将被提炼代码段中需要读取的局部变量,当做参数传给目标函数

处理完所有局部变量之后,进行编译

在源函数中,将被提炼代码段替换为对目标函数的调用

编译测试

 

2、Inline Method 内联函数

     这种重构是清楚间接引用带来的复杂度的手法,目标函数必须足够简单,源函数已经足以说明函数用途

做法:

检查函数,确定它不具有多态性

找出这个函数所有被调用点

将这个函数的所有被调用点都替换为函数主题

编译测试

删除该函数的定义

 

3、Inline Temp 内联临时变量

做法:

检查给临时变量赋值的语句,确保等号右边的表达式没有副作用

如果这个临时变量并未被生声明为final,那就将它声明为final,然后编译

找到该临时变量的所有引用点,将他们替换为“为临时变量赋值”的表达式

每次修改后,编译并测试

修改完所有引用点后,删除该临时变量的声明和赋值语句

编译测试

 

4、Replace Temp with Query 以查询取代临时变量

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics