目录
重构技术以微小的步伐修改程序
重构原则
一个类本该完成它自己的事情,一个函数本该放在它使用数据的对象内(单一职责原则);
任何不被修改的变量都可以当做参数值传递到函数中(不应该修改传入参数),只有一个被修改的变量可以当做返回值返回(修改对象的命令方法);
Swicth 提取函数,应该在自己的对象数据上使用switch(单一职责);
代码应该表现自己的目的;
尽量去除一些不必要的临时变量;
对象的哪个数据不稳定(可能修改)影响函数,就应该将函数移动到对象中(对外隐藏复杂性);
重构和新添加功能应该区分开(单独做任务计划);
擦掉窗户上的污渍是你看得更远;
今天你想做什么?明天我们想做什么?我们应该对代码预先设计;
采用间接层,小函数的优美更加可靠;
代码坏的味道
1.重复代码
相同子类使用 Pull up method 到超类
2.过长函数
做什么,条件表达式和循环
3.过大的类
4.过长参数列
对象之间的迁移
通过封装函数来隐藏委托关系;
外加函数:临时变量的复制函数(服务类工具函数的封装);
不应该修改函数传递的参数值(final);
重新组织数据
封装取值函数和设值函数,有利于子类重写,重新获取值;
简化函数
将修改对象状态的函数(修改函数)和查询对象状态的函数(查询函数)分开设计(CQRS);
尽量使用对象传递参数,避免添加参数时大量修改调用函数的地方;
参考资料:《重构-改善既有代码的设计》