具有相同类型的方法参数

时间:2013-10-28 08:04:49

标签: java methods

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

method(int userId, int productId, int weight, int price)

我看到的唯一解决方案是使用一些持有者类(可能使用了构建器模式)并将其作为方法参数传递。

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:5)

根据您的具体情况,Introduce Parameter Object可能是相关的重构选项。

More explanations here,我引用下面的内容(强调我的):

  

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

答案 2 :(得分:0)

对我来说,我认为最好的做法是使用Data类(java bean),但是你的参数使用一个名为standard的命令,然后使用这个数据类对象作为参数。

这种方法的缺点是你正在增加系统中的耦合。

答案 3 :(得分:-4)

在这种情况下,您可以使用变量参数概念。

method(int… ids){
    userid = ids[0];
    productid = ids[1];
}