【问题标题】:What is the best way to code a method overloading?编写方法重载的最佳方法是什么?
【发布时间】:2019-04-17 18:10:44
【问题描述】:

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

我做了一个方法重载来获得一个具有不同参数的随机数:下限和上限或只有下限。

这样做更好吗:

/**
 * 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;
}

简而言之,我的问题是两者之间最好的方式是什么? 谢谢。

【问题讨论】:

  • 第一个更好,因为你只想做一次事情,所以你只需要在一个地方更正/改变事情。
  • 第一个。这使它简洁并避免重复代码。

标签: java methods overloading


【解决方案1】:

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

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

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

但是随着时间的推移,事情很可能需要改进或改变。然后选项 1 要求您少花一点注意力和勤奋。因此,您选择那个。

还要注意,考虑这些微妙之处是完全可以的。不是因为这个具体的例子如此重要,而是为了训练这种技能。这样您就可以在必须编写超过 10 行代码的复杂度更高的代码的那一天做好准备!

是的,这与重载无关。如前所述:最大限度地减少代码重复应该始终是您的最高优先事项之一。有时你必须妥协,但你这样做是有意识的决定,而不是出于懒惰的心情或冲动。

【讨论】:

    【解决方案2】:

    第一个。这使得它简洁并避免重复代码。

    重用方法作为重载方法的一部分并不是方法重载的要求,而是一种干净代码的方式。重载的方法也可以有完全不同的实现,但如果实现相似,最好重用方法而不是再次显式编写整个实现。

    【讨论】:

      猜你喜欢
      • 2013-06-03
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 2010-09-16
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多