长参数表
迹象和症状
一个方法的参数超过三个或四个。

问题的原因
在将几种类型的算法合并到一个方法中之后,可能会出现一长串参数。可能已经创建了一个长列表来控制将运行哪种算法以及如何运行。
长参数列表也可能是使类更加相互独立的努力的副产品。例如,创建方法中所需的特定对象的代码从方法移动到调用方法的代码,但是创建的对象作为参数传递给方法。因此,原来的类不再知道对象之间的关系,依赖性降低了。但是如果创建了几个这样的对象,每个对象都需要自己的参数,这意味着一个更长的参数列表。
这样的列表很难理解,随着时间的推移,它们变得矛盾且难以使用。方法可以使用自己对象的数据,而不是一长串参数。如果当前对象不包含所有必要的数据,则可以将另一个对象(该对象将获得必要的数据)作为方法参数传递。
治疗
检查传递给参数的值是什么。如果有些参数只是另一个对象的方法调用的结果,则使用将参数替换为方法调用.该对象可以放在自己类的字段中,也可以作为方法参数传递。
不是将从另一个对象接收到的一组数据作为参数传递,而是将对象本身传递给方法,通过使用保存整个对象.
如果有几个不相关的数据元素,有时可以通过将它们合并为单个参数对象引入参数对象.

回报
更可读,更短的代码。
重构可能会揭示之前未被注意到的重复代码。
何时忽略
- 不要删除参数,如果这样做会导致类之间不必要的依赖。