所谓重构(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 第一章摘要
原文:http://blog.csdn.net/tanxiang21/article/details/27339675