您的位置:首页 > 编程语言

《重构 改善既有代码的设计》学习笔记 2 -- Extract Method(提炼函数)

2016-02-20 21:32 501 查看
重构的手法中,很大一部分是对函数进行整理,使之更恰当地包装代码。

问题来源:

     过长函数。

     这些过长的函数,往往包含太多信息,这些信息又被函数错综复杂的逻辑掩盖,不易鉴别。

 解决方案:

     使用Extract Method(提炼函数),把一段代码从原先函数中提取出来,封装成一个单独函数中。

困难:

      处理局部变量。

做法:

    1. 封装新函数:创造一个新函数,并根据函数的意图来对它命名。函数以“做什么”来命名,而不是“怎么做”。

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

    3. 仔细检查提炼出的代码,看看其中是否包含源函数的局部变量和参数。

    4. 检查是否有“仅用于被提炼代码段”的临时变量。 若有,在目标函数中将它们声明为临时变量。

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

       如果一个临时变量值被修改了,看看是否可以将被提炼代码段处理为一个查询,并将结果赋值给相关变量。

如果很难这样做,或如果被修改的变量不止一个,你就不能仅仅将这段代码原封动提炼出来。 你可能需要先使

用分离临时变量(Split Tempory Variable),然后再尝试提炼;也可以使用以查询取代变量(Replace Temp 

with Query)将临时变量消灭掉。

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

  7. 处理完所有局部变量之后,进行变异

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

  9. 再次编译,测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 重构