我想知道编写至少需要三个相同类型参数的方法的最佳实践是什么。问题是使用这种方法时可能会混淆参数。例如
method(int userId, int productId, int weight, int price)
我看到的唯一解决方案是使用一些持有者类(可能使用了构建器模式)并将其作为方法参数传递。
最佳实践是使用清晰的参数名称(并可能在 Javadoc 中阐明它们)。如果参数太多,单独的对象更好。
如果方法的调用者无法区分不同的(命名良好的)参数,那么也许他不应该首先调用该方法。
根据您的具体情况,Introduce Parameter Object可能是一个相关的重构选项。
更多解释here,我引用以下内容(强调我的):
您经常会看到倾向于一起传递的特定参数组。几种方法可以在一个类或多个类中使用该组。这样的一组类是一个数据块,可以用一个包含所有这些数据的对象来替换。将这些参数转换为对象只是为了将数据组合在一起是值得的。这种重构很有用,因为它减少了参数列表的大小,而且长的参数列表很难理解。新对象上定义的访问器也使代码更加一致,这再次使其更易于理解和修改。
对我来说,我认为最好的做法是使用数据类(java bean),但是你的参数有一个名为标准的意志,然后你使用这个数据类对象作为参数。
这种方法的缺点是您正在增加系统中的耦合。
在这种情况下,您可以使用可变参数概念。
method(int… ids){
userid = ids[0];
productid = ids[1];
}