组合的方法
重构的大部分工作都致力于正确地组合方法。在大多数情况下,过长的方法是万恶之源。这些方法中变幻莫测的代码隐藏了执行逻辑,使方法极其难以理解,甚至更难更改。
这个小组中的重构技术简化了方法,消除了代码重复,并为未来的改进铺平了道路。
问题:您有一个可以组合在一起的代码片段。
解决方案:将此代码移动到单独的新方法(或函数)中,并将旧代码替换为对该方法的调用。
问题:当方法主体比方法本身更明显时,使用这种技术。
解决方案:用方法的内容替换对方法的调用,并删除方法本身。
问题:你的表情让人难以理解。
解决方案:将表达式的结果或其部分放在独立的变量中,这些变量是自解释的。
问题:你有一个临时变量,它被分配一个简单表达式的结果,仅此而已。
解决方案:用表达式本身替换对变量的引用。
问题:将表达式的结果放在局部变量中,以便稍后在代码中使用。
解决方案:将整个表达式移动到一个单独的方法,并从该方法返回结果。查询方法而不是使用变量。如有必要,将新方法合并到其他方法中。
问题:您有一个局部变量,用于在方法中存储各种中间值(循环变量除外)。
解决方案:对不同的值使用不同的变量。每个变量应该只负责一个特定的事情。
问题:一些值被赋给方法主体内的参数。
解决方案:使用局部变量而不是参数。
问题:你有一个很长的方法,其中局部变量是如此纠缠在一起,你不能应用提取方法.
解决方案:将方法转换为单独的类,以便局部变量成为类的字段。然后可以将该方法拆分为同一个类中的几个方法。
问题:所以你想用一个新的算法取代现有的算法?
解决方案:将实现算法的方法主体替换为新算法。