具有相同类型的方法参数

avr*_*mar 3 java methods

我想知道编写方法的最佳实践是什么,该方法至少需要三个相同类型的参数.问题是你可以在使用这种方法时混淆参数.例如

method(int userId, int productId, int weight, int price)
Run Code Online (Sandbox Code Playgroud)

我看到的唯一解决方案是使用一些holder类(可能使用了builder模式)并将其作为方法参数传递.

Kay*_*man 5

最佳实践是使用明确的参数名称(并可能在Javadoc中澄清它们).如果参数太多,则单独的对象更好.

如果方法的调用者无法区分不同的(命名良好的)参数,那么他可能不应该首先调用该方法.

  • 此外,现代IDE显示代码完成(Eclipse显示参数名称)似乎无法将它们混合起来,除非您决定这样做. (3认同)

Jea*_*ett 5

根据您的具体情况,引入参数对象可能是相关的重构选项.

这里有更多解释,我在下面引用(强调我的):

通常,您会看到一组特定的参数,这些参数通常会一起传递.有几种方法可以在一个类或几个类中使用该组.这样的一组类是数据块,可以用携带所有这些数据的对象替换.将这些参数转换为对象只是为了将数据分组在一起是值得的.这种重构很有用,因为它减小了参数列表的大小,并且很难理解长参数列表.新对象上定义的访问器也使代码更加一致,这再次使其更容易理解和修改.