添加参数
问题
方法没有足够的数据来执行某些操作。
解决方案
创建一个新参数来传递必要的数据。
之前

后

为什么重构
您需要对方法进行更改,而这些更改需要添加以前对该方法不可用的信息或数据。
好处
- 这里的选择是添加一个新参数,还是添加一个包含方法所需数据的新私有字段。当您需要一些偶尔或频繁变化的数据,而没有必要一直将其保存在对象中时,参数是更可取的。在这种情况下,重构将得到回报。否则,添加一个私有字段,并在调用方法之前用必要的数据填充它。
缺点
添加一个新参数总是比删除它容易,这就是为什么参数列表经常膨胀到怪诞的大小。这种气味被称为长参数表.
如果您需要添加一个新参数,有时这意味着您的类不包含必要的数据,或者现有参数不包含必要的相关数据。在这两种情况下,最好的解决方案是考虑将数据移动到主类或已经可以从方法内部访问其对象的其他类。
如何重构
查看该方法是否定义在超类或子类中。如果方法出现在这些类中,您还需要重复这些类中的所有步骤。
下面的步骤对于在重构过程中保持程序的功能至关重要。通过复制旧方法并向其添加必要的参数来创建新方法。将旧方法的代码替换为对新方法的调用。您可以将任何值插入到新参数中(例如
零
对象是0,数字是0)。找到对旧方法的所有引用,并将它们替换为对新方法的引用。
删除旧的方法。如果旧方法是公共接口的一部分,则不可能删除。如果是这种情况,将旧方法标记为已弃用。