传递参数时的计算

时间:2013-11-22 05:52:41

标签: java function

考虑以下功能

variable y的唯一用途是将它作为参数传递给另一个类Variable的对象的构造函数。

在进行函数调用或将其存储在变量中时,直接计算值是不是很好或者不好?扩展问题,假设我们object foo members x and y,我会调用新的Variable(foo.x, foo.y)吗?或分别存储foo.xfoo.y,然后致电new Variable(x, y)

private static Variables getVariables(double product, double sum) {
        // using reduced quadratic equation.
        double x =  (sum/2) - Math.sqrt( ((sum/2) * (sum/2)) - product);
        double y = sum - x;
        return new Variables(x, y);

        /*
         * Question:
         * is it good practice / bad practice to compute while calling function ?
         * return new Variable (x, sum - y);
         */
    }    

1 个答案:

答案 0 :(得分:1)

正如您对问题的评论所述,任何一种返回方式都是可以接受的。

在我所拥有的课程中,我们必须更正式地考虑哪种方式更具可读性。通常这意味着我们首选使用您发布的原始代码,而不是您注释掉的版本。

但是,我认为两者都是完全可读的,请不要做这样的事情:

return new Variable((sum/2) - Math.sqrt( ((sum/2) * (sum/2)) - product), sum - x);

显然,这在视觉上难以处理,因此请将计算结果保持在最低限度。这样做的原因不仅在于您自己的理解,还在于其他程序员可能正在查看您的代码的问题。