重载:使用更少参数调用方法的方法,使用更少的参数

时间:2011-06-12 19:52:29

标签: overloading

我和我的同事争吵了。当重载两个方法时,对于具有更多参数的方法来说,调用具有较少参数的方法是不好的做法?

例如:

method (P p1, P p2, P p3) {
       <do something with p1 and p2 => newP>;
       method (newP, p3);
}
method (P p1, P p2) {
       ....
}

4 个答案:

答案 0 :(得分:1)

像这样的重载链接是一种常见的做法(特别是对于构造函数) - 我不会称之为坏,尽管它可能像大多数语言特征一样被滥用。

只要减少代码重复,这是一个很好的做法。大多数时候,我发现它也更具可读性。

我想说使用这种技巧是个人意见和风格的问题,而不是绝对的好或坏做法。

答案 1 :(得分:0)

这是构造函数调用中使用的一般范例,即具有更多参数的范例使用较少的参数调用该方法,然后使用其余参数继续初始化。我不认为它在构造对象的背景下是一种不好的做法,但我不确定它在其他情况下是否有意义。

答案 2 :(得分:0)

而不是这种做法,我们可以在某些情况下使用多个参数的方法,例如c中的printf。 Java现在也支持。

答案 3 :(得分:0)

我认为这是一种很好的做法,因为它隐藏了细节。虽然你展示的例子似乎反过来。

我希望那个较少参数的人能用更多+默认值来调用。 您正在从具有更多细节的细节中调用细节较少的那个。某种程度上闻起来很腥,但也许只是因为我不熟悉这种方法,