在提取方法时,对变量的处理需要慎之又慎,特别当方法体中存在多个变量,且需要改变其值时。若要进行Extract Method的重构,可以考虑MartinFowler在第6章介绍的多种手法,例如Replace Temp With Query、Inline Temp、RemoveAssignments to Parameters等。若非必要,切忌将方法体中需要使用的变量提取为私有字段。因为该字段表达的含义,可能会与其他未重构方法中的局部变量雷同。

本文节选自《重构:改善既有代码的设计(评注版)》一书。

图书详细信息:http://blog.csdn.net/broadview2006/article/details/6601099

重构:改善既有代码的设计 精彩书评二相关推荐

  1. PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性

    思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类 ...

  2. 重构—改善既有代码的设计

    概述 1.1 参考资料 <重构-改善既有代码的设计>读后总结 <重构改善既有代码的设计> 22种代码的坏味道,一句话概括 1.2 何谓重构 首先要说明的是:视上下文不同,重构的 ...

  3. 『重构--改善既有代码的设计』读书笔记----序

    作为C++的程序员,我从大学就开始不间断的看书,看到如今上班,也始终坚持每天多多少少阅读技术文章,书看的很多,但很难有一本书,能让我去反复的翻阅.但唯独『重构--改善既有代码的设计』这本书让我重复看了 ...

  4. PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据

    介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accesso ...

  5. 重构 改善既有代码的设计:代码的坏

    以下内容来自<<重构 改善既有代码的设计>> 一.什么是重构 所谓重构(Refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改以改进程序的内部结构 ...

  6. 《重构-改善既有代码的设计》-第1例:租赁影片(2)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 上接  重构-改善既有代码的设计-第1例:租赁影片(1) 2  运用多态取代与价格相关的条件逻辑 2 ...

  7. 《重构-改善既有代码的设计》-第1例:租赁影片(1)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 买了<重构 - 改善既有代码的设计 >一书,一直没有好好看,大致过了下也觉得只是有点点印 ...

  8. 实践提高《重构改善既有代码的设计第2版》PDF中文+PDF英文+对比分析

    重构是编程的基础,是在不改变外部行为的前提下,有条不紊地改善代码.编程爱好者都知道,Martin Fowler 的<重构:改善既有代码的设计>已经成为全球有经验的程序员手中的利器,既可用来 ...

  9. 重构改善既有代码的设计(github源码)

    refactoring improving the design of existing code(重构改善既有代码的设计) https://github.com/CoderDream/refacto ...

  10. 重构:改善既有代码的设计(软件开发的不朽经典)

    重构:改善既有代码的设计(软件开发的不朽经典) 基本信息 作者: (美)Martin Fowler   译者: 熊节[同译者作品] 丛书名: 图灵程序设计丛书 出版社:人民邮电出版社 ISBN:978 ...

最新文章

  1. LaTeX入门第二集!LaTeX的几个示例!
  2. 贝叶斯统计:信噪对偶与Dawid定理
  3. 拥抱.NET Core系列:依赖注入(2)
  4. 明晰 | Java序列化与反序列化
  5. 二叉树的迭代遍历(JavaScript)
  6. scala 抽象方法_Scala抽象类型
  7. HTTP session的原理
  8. 用Python实现从Oracle到GreenPlum的表结构转换
  9. linux usb 从芯片,新人求教,怎么烧录Linux系统到一个小芯片上?
  10. 强势破圈!时尚COSMO联合百度与小红书发布中国美妆地图、美妆种草度白皮书
  11. 因为很穷,所以一直很努力
  12. 杭电ACM 2000-2099 100道题 详细解题报告出炉
  13. 巴特勒船长-百年一遇的男人
  14. golang 学习 - chan以及chan的一下用例
  15. WEEK 15 B ZJM 与生日礼物
  16. 获取星期一,获取第几周
  17. Web前端系列技术之HTML基础(从入门开始)①
  18. Python进阶--网络爬虫基础
  19. 普通路由器改4g路由器_工业级路由器凭什么牛?智能组网、4G全是干货!
  20. 计算机软件发展四十五年

热门文章

  1. 开启es6——搭建开发环境
  2. HDU3746 Cyclic Nacklace KMP求循环节
  3. 【loj6307】「雅礼国庆 2017 Day1」Clique 贪心
  4. 【easy】349. Intersection of Two Arrays
  5. 2017-2018-1 点集拓扑
  6. 【codevs1378】选课——树形动规
  7. WinForm程序启动控制台窗口Console
  8. SSM Controller 页面之间跳转 重定向,有参 无参问题
  9. [wikioi]最长严格上升子序列
  10. Gdcm源码编译with python wrap详解