重构概览

所谓重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。

摘要

如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地达成目录,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性。

代码块愈小,代码的功能就愈容易管理,代码的处理和移动也就愈轻松。

Extract Method 提炼到独立方法中

重构技术就是以微小的步伐修改程序,如果你放下错误,很容易可发现它。

任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优秀的程序员。

Move Method 绝大多数情况下,函数应该放在它们所使用的数据的所属对象内。“适应新家”,意味着去掉参数,变更函数名。

Replace Temp with Query 临时变量直接用查询方法代替。

Form Template Method ?

最好不要在另一个对象的属性基础上运用switch语句。如果不得不使用,也应该在对象自己的数据上使用,而不是在别人的数据上使用。

可以用多态取代switch语句,或者State模式,加入间接层

Replace Type Code with State/Strategy 使用状态或策略模式替换类型代码

Replace Conditional with Polymorphism 使用多态替换条件,去掉switch

Self Encapsulate Filed 自己内部属性用封装方法来处理

一次简单的重构:

  • Extract Method 抽取方法
  • Move Method 移动方法
  • Replace Conditional with Polymorphism 多态替换条件
  • Self Encapsulate Filed 自属性封装
  • Replace Type Code with State/Strategy 使用状态或策略模式替换类型

说明

  • 《重构-改善既有代码的设计》Martin Fowler 第一章摘要

  • 欢迎修改地址:https://github.com/txidol/txidol.github.io

  • 你也可以访问:http://txidol.github.io 获取更多的信息