重构让代码变得有价值而不是负担。通过时机、切入点、原则三个词语来简单了解一下重构。
什么时候我们要重构,逻辑重复、程序复杂不好理解、添加功能时不好修改。
Method:
相同的代码
过长的参数
不好理解的方法名
复杂的算法
Class:
相似的method
过大的class
临时、相同的field
面向过程化
职责不清晰
纯数据class
Organizing
一个class引发多个class修改(divergent change)
一个class受多个class变化的影响(shotgun surgery)
过度的继承
过度delegation
过度消息耦合(message chains)
当我们遇到这些问题重构时,可参考哪些经验和原则:
Method
函数名表达意图(代替注释)、职责明确(一个函数一个意图)、参数简单(可传递对象)、减少全局变量的使用、局部变量再复值、去除重复表达式、精简算法
简化条件表达式
Between Object
单一职责 (将method、field转移到合适的类)、使用封装、减少耦合、去除不必要关联(在feild中去除)
加委托(隐藏细节、通过server代理或委托类)、去委托(委托泛滥、继承代替委托)
扩展类库(提炼子类、提炼超类)、用接口代替继承 委托代替继承、使用多态
避免纯数据类、将数据转换成对象
使用设计模式
在开发程序是我们需要先设计、熟悉重构避免重构。
时间: 2024-10-08 10:07:42