参数化方法
问题
多个方法执行类似的操作,只是它们的内部值、数字或操作不同。
解决方案
通过使用传递必要特殊值的参数来组合这些方法。
之前

后

为什么重构
如果您有类似的方法,您可能有重复的代码,以及由此带来的所有后果。
更重要的是,如果您需要添加该功能的另一个版本,则必须创建另一个方法。相反,您可以简单地使用不同的参数运行现有方法。
缺点
有时这种重构技术可能做得太过了,导致通用方法冗长而复杂,而不是多个更简单的方法。
将功能的激活/去激活移动到参数时也要小心。这最终会导致创建一个需要通过处理的大型条件操作符将参数替换为显式方法.
如何重构
通过应用,创建一个带有参数的新方法,并将其移动到所有类都相同的代码中提取方法.请注意,有时只有某些部分的方法实际上是相同的。在这种情况下,重构只是将相同的部分提取到新方法中。
在新方法的代码中,用一个参数替换特殊/不同的值。
对于每个旧方法,找到它被调用的位置,将这些调用替换为对包含参数的新方法的调用。然后删除旧的方法。