考虑以下功能
variable y
的唯一用途是将它作为参数传递给另一个类Variable的对象的构造函数。
在进行函数调用或将其存储在变量中时,直接计算值是不是很好或者不好?扩展问题,假设我们object foo
members x and y
,我会调用新的Variable(foo.x, foo.y)
吗?或分别存储foo.x
和foo.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);
*/
}
答案 0 :(得分:1)
正如您对问题的评论所述,任何一种返回方式都是可以接受的。
在我所拥有的课程中,我们必须更正式地考虑哪种方式更具可读性。通常这意味着我们首选使用您发布的原始代码,而不是您注释掉的版本。
但是,我认为两者都是完全可读的,请不要做这样的事情:
return new Variable((sum/2) - Math.sqrt( ((sum/2) * (sum/2)) - product), sum - x);
显然,这在视觉上难以处理,因此请将计算结果保持在最低限度。这样做的原因不仅在于您自己的理解,还在于其他程序员可能正在查看您的代码的问题。