名称 动机 输入 输出
Extract Method

函数过长

不方便阅读

简短而良好的函数命名

需对局部变量进行处理

函数复写容易

阅读性增强

复用机会变大

Inline Method

内部代码和函数名称

一样清晰易读

一组不合理的函数

重新重构

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

函数被调用点

       间接性降低
名称 动机 输入 输出
Inline Temp

一个临时变量

仅被赋值一次

阻碍重构

将变量先赋值成final,

以确定是否只赋值一次

简介
Replace Temp with Query

临时变量的临时性

驱使生成长的函数。

临时变量可以被所有函数访问

将表达式替换为一个独立函数

临时变量只赋值一次

便于重构                      
Introduce Explaining Variable

复杂表达式转换为一个临时变量

易于阅读

一个final 变量 易于阅读
Split Temporary Variable

一个临时变量被赋值多次

每个变量只负责一个责任

针对每次赋值,创作一个独立,对应的临时变量 多个责任的变量,会使用户糊涂
            Move Method          

检查sourceclass 关联的属性;

检查sourceclass的superclass 和subclass

targetclass 声明

如何从source正确引用 target Object;

source method

变成委托函数

需调整对 source method 的调用,变成对target method的调用

降低耦合         
Move Field

某个field频繁被另一class用到

需确定何时在source object中使用target object

source filed ---> target

 

class 函数专一

高内聚

       
       
       
       
       
       
       
     

本文转自 randy_shandong 51CTO博客,原文链接:http://blog.51cto.com/dba10g/414923,如需转载请自行联系原作者

重构-改善既有代码的设计相关推荐

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

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

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

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

  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. linux kernel内存回收机制
  2. mysql中出现 xC4 xDD_mysql数据库调优总结(二)
  3. 程序员微信头像_这才是程序员的内心独白
  4. idea 引入oracle驱动并打包_IDEA下从零开始搭建SpringBoot工程
  5. 使用PYTHON统计项目代码行数
  6. 谁说IT男没有审美?怀揣5000元巨款,我们这样改变生活
  7. 转载牛人的ASP.NET Cookies简单应用 记住用户名和密码
  8. 详介 MQTT 服务器的搭建与客户端连接
  9. MPQ Storm库 源码分析 一
  10. 【艾特淘】淘宝保证金催缴单在哪里,要怎么交?
  11. Endnote实用快捷键
  12. docker Docs
  13. (附源码)计算机毕业设计ssm城市智能公交系统
  14. 多线程之互斥锁(mutex)的使用方法
  15. 20155305乔磊2016-2017-2《Java程序设计》第十周学习总结
  16. open write read 函数
  17. mysql 中文拼音排序
  18. 自己动手写SGD算法
  19. .Net Framework 3.5在Windows 10的安装(2020.3.16可行)
  20. 开源文档推荐,支持docker私有化部署

热门文章

  1. 自动驾驶汽车的发展史
  2. JAVA毕业设计汇美食电子商城计算机源码+lw文档+系统+调试部署+数据库
  3. 3.4 图像几何变换——图像错切
  4. python2.x 与python3.x之d.keys()返回类型的区别
  5. Python 将长度32的UUID 压缩为长度为22的字符串
  6. PHP 多层循环 如何跳出循环?
  7. 求浆得酒,能获得如此好运,也当为大家做些什么
  8. 深入浅出推荐系统(六):召回:一切为了业务
  9. window小皮composer安装laravel9
  10. 网络安全笔记-OS命令注入漏洞