简化函数调用
Rename Method:只要你能理解一段程序的功能,就应该大胆地使用Rename Method将你所知道的东西传达给其他人,如果合适的话也可以修改变量名称和类名称。
函数参数的修改:Add Parameter和Remove Parameter,避免使用很长的参数队列
Preserve Whole Object:如果参数大多来自于一个对象,则把它们替换为单一对象
Introduce Parameter Object:把参数放到一个参数对象中
Replace Parameter with Method:如果参数可以通过函数调用拿到的话,就用函数取代参数
Replace Parameter with Explicit:参数被用来在条件表达式中作为选择依据
Parameterize Method:为数个相似的函数添加参数,并将它们合并到一起
Separate Query from Modifier:将查询和修改函数分开
Hide Method和Remove Setting:隐藏接口实现的细节
Replace Constructor with Factory Method:用工厂方法取代构造函数
Encapsulate Downcast:封装向下转型
Replace Error Code with Exception:用异常来替代错误代码
Replace Exception with Test
重构,复用与实现
为什么不愿意重构代码?
不知道如何重构
如果这些利益是长远地,何必现在付出这些努力呢?长远来看,说不定当项目获益地时候,你已经不在职位上了
代码重构是一项额外工作,老板付钱给你,主要是让你编写新功能
重构可能破坏现有程序
一个常见地重构原因就是:调整程序结构以使(短期内)添加新功能更容易。
面向对象,设计模式
自动化工具用来检测有问题地代码