圣诞大减价开始了!

长参数表

迹象和症状

一个方法的参数超过三个或四个。

问题的原因

在将几种类型的算法合并到一个方法中之后,可能会出现一长串参数。可能已经创建了一个长列表来控制将运行哪种算法以及如何运行。

长参数列表也可能是使类更加相互独立的努力的副产品。例如,创建方法中所需的特定对象的代码从方法移动到调用方法的代码,但是创建的对象作为参数传递给方法。因此,原来的类不再知道对象之间的关系,依赖性降低了。但是如果创建了几个这样的对象,每个对象都需要自己的参数,这意味着一个更长的参数列表。

这样的列表很难理解,随着时间的推移,它们变得矛盾且难以使用。方法可以使用自己对象的数据,而不是一长串参数。如果当前对象不包含所有必要的数据,则可以将另一个对象(该对象将获得必要的数据)作为方法参数传递。

治疗

  • 检查传递给参数的值是什么。如果有些参数只是另一个对象的方法调用的结果,则使用将参数替换为方法调用.该对象可以放在自己类的字段中,也可以作为方法参数传递。

  • 不是将从另一个对象接收到的一组数据作为参数传递,而是将对象本身传递给方法,通过使用保存整个对象

  • 如果有几个不相关的数据元素,有时可以通过将它们合并为单个参数对象引入参数对象

回报

  • 更可读,更短的代码。

  • 重构可能会揭示之前未被注意到的重复代码。

何时忽略

  • 不要删除参数,如果这样做会导致类之间不必要的依赖。
Baidu
map