编码方法重载的最佳方法是什么?

时间:2019-04-17 18:10:45

标签: java methods overloading

我是计算机科学专业的学生,​​目前正在研究方法重载。

我做了一个方法重载,以获取一个具有不同参数的随机数:低界和高界或仅低界。

这样做更好吗?

/**
 * Return a random double in [low; sup[
 */
public static double getDouble(int low, int sup) {
    return low + Math.random() * (sup - low);
}

/**
 * Return a random double in [0; sup[
 */
public static double getDouble(int sup) {
    return getDouble(0, sup);
}

或者,我有事要做吗

/**
 * Return a random double in [low; sup[
 */
public static double getDouble(int low, int sup) {
    return low + Math.random() * (sup - low);
}

/**
 * Return a random double in [0; sup[
 */
public static double getDouble(int sup) {
    return Math.random() * sup;
}

总之,我的问题是两者之间最好的方法是什么? 谢谢。

2 个答案:

答案 0 :(得分:3)

软件开发中真正的大问题之一是代码 duplication

您绝对总是尽力减少相同的代码段。

当然,在您的示例中,几乎与选择哪个版本无关。如果您的代码就是那样,并且再也不会被触及,那么这两个选项都是可读且不错的。

但是随着时间的流逝,事情有可能需要增强或改变。然后,选项1要求您少付出一些精力和精力。因此,您选择了那个。

还请注意,考虑这些细微之处是完全可以的。不是因为这个特定的示例如此关键,而是为了训练该技能。这样一来,您就可以准备并准备好需要编写10行以内的更高复杂度的代码了!

是的,这与超载无关。如前所述:最小化代码重复应该始终是您的最高优先事项之一。有时您必须做出让步,但您这样做是出于有意识的决定,而不是出于懒惰的情绪或冲动。

答案 1 :(得分:2)

第一个。这样可以使其简洁,并避免重复代码。

将方法作为重载方法的一部分重用并不是方法重载的要求,而是一种干净的代码。重载的方法也可以具有完全不同的实现,但是在实现类似的情况下,重用该方法要比再次显式编写整个实现更好。