, 先写一个新函数, 然后将其用旧函数来包装可以避免一些接口修改的问题
临时变量只属于函数本身, 容易助长冗长的函数, 且我们容易忘记临时变量的跟踪导致一些意外的错误计算
用函数调用消除临时变量可以让程序更直观...依赖统计和性能度量大大优化来重构的效果
3 代码的坏味道
3.1 重复代码
如果项目内多个地方看到了相同的代码, 那就想办法将其合为一
3.2 过长函数
多对大函数进行分解, 每当需要长注释的时候就应该将所需的分段进行包装了...因此可以包装一个足够全面的参数类, 然后让目标函数自己从参数对象中获取自己需要的参数
但是有时候不希望两个对象由于大量和互相使用而耦合, 那种时候还是需要适当提炼为函数, 但是还是要保持参数列别太长
3.5..., 但是需要接管原类的构造, 在原类构造后则只能通过逐元素拷贝构造来实现副本, 而包装类能做到的事情更多, 用户应该能够自然地将包装类当作原类使用....如果两个函数相似但不相同, 则可以试着用模板类来优化并提取
11.3 构造函数本体上移
只在子类中保留构造函数有区别的部分, 然后主体通过调用基类构造来实现
11.4 函数下移
11.2的反面, 主要是当一些子类完全用不到某个操作时下移