2

从另一个方法的参数列表中调用一个方法是一种好习惯吗?

public String processRequestBasedOnCondition(MyObject obj) {
   return executeRequest(frameRequestObject(obj));
}

public String executeRequest(RequestObject rqObject){
   return rqObject.execute();
}
  1. 我可以将 的返回值保存frameRequestObject(obj)在一个变量中,并将其作为参数传递给executeRequest()?在这种情况下哪个是最佳实践?
  2. 返回“return rqObject.execute();”之类的值是一种好习惯吗?
4

6 回答 6

1
  1. 是的你可以

    public String processRequestBasedOnCondition(MyObject obj) {
        RequestObject requestObject = frameRequestObject(obj);
        return executeRequest(requestObject);
    }
    
  2. 偏好多于实践。

有些人可能会争辩说,将调用分配给变量更具可读性。就我个人而言,我会简单地return rqObject.execute()认为它具有足够的可读性。

于 2012-07-11T07:03:35.187 回答
0

坦率地说,两者都是关于偏好而不是实践。

1.

RequestObject reqObj = frameRequestObject(obj);
   return executeRequest(reqObj);

2. 对于像这样返回 rqObject.execute() 的新手来说,可能会令人困惑。然而,它是一种更清洁的方式......我更喜欢这个。

于 2012-07-11T07:24:06.963 回答
0

Can I hold the return value of frameRequestObject(obj) in a variable and pass it as argument to the executeRequest()? Which is the best practice in this case?

的,你可以。但是为了更好的可读性,首先捕获方法的输出,然后将其传递给其他方法。

is it a good practice to return the value like "return rqObject.execute()

在这里,代码的更好的可读性也很重要,但是你可以做到。

于 2012-07-11T07:01:16.883 回答
0

我认为在这种情况下你应该没问题。

编写可读代码很重要。在这种情况下,使用诸如return executeRequest(frameRequestObject(obj));仍然非常可读的东西。

当你有这样的事情时,事情开始变得混乱: return executeRequest(foo.getBar().getValue().frameRequestObject(obj));

应避免使用上述代码。这就是为什么大多数时候建议总是把事情分解。

于 2012-07-11T07:01:43.453 回答
0

它实际上是功能风格(很好)。

于 2012-07-11T07:04:01.923 回答
0
  1. 只要代码保持可读性,就没有问题。如果在一行 200 个字符的代码中最终调用了 10 个方法,那就不能再接受了
  2. 是的。将调用结果存储在局部变量中并返回局部变量并没有任何实际用途。它可以帮助调试,但直接返回结果是可以的。如果调试需要额外的变量,此时您仍然可以添加它。
于 2012-07-11T07:05:22.597 回答