哪个版本更好?

时间:2010-11-24 05:56:10

标签: java



Response execute(String para1,String para2){

    String xmlRequest = buildRequest(para1, para2);

    String xmlResponse = getXmlResponse(xmlRequest);

    Response response = parseResponse(xmlResponse);

    return response;

}

还是连接版?那是为什么?


Response execute(String para1,String para2){

return parseResponse(getXmlResponse(buildRequest(para1, para2)));
return parseResponse(getXmlResponse(buildRequest(para1, para2)));

谢谢, 萨拉

6 个答案:

答案 0 :(得分:3)

与其他人写的相比,我发现第二版更容易阅读。

首先,我解析的符号大约有一半(12对21)。我没办法瞥一眼第一个并理解它在做什么,即使它正在做的事情和第二个方法一样简单。

第二,在第二个例子中,数据流是显而易见的:你可以读下这一行。在第一个中,我必须仔细查看以确保在下一个中使用一个变量,对于每对行(特别是因为2个临时变量以完全相同的5个字符开头)。这正是有人稍后会更新的情况,错误地留下额外的变量 - 我已经看过它一百万次了。

第三,第二个是以更具功能性的风格编写的,关于功能代码的推理往往更容易。在这种情况下,好处是最小的,因为前两行是对不可变对象的赋值,但是声明3个变量将我转移到“这里发生了一些复杂的”模式,这实际上并非如此。

当然,这种方法非常小,无论如何都不会出错,但我发现在任何规模上都应该养成良好的习惯是有用的。

答案 1 :(得分:2)

我更喜欢第一个版本,因为它更容易阅读,而不是那么多嵌套参数。除了可读性之外,性能不应该有所不同。

答案 2 :(得分:1)

第一个更好。因为它更具可读性。 任何程序员都可以编写计算机可以理解的代码。 优秀的程序员编写人类可以理解的代码。

答案 3 :(得分:1)

它们是相同的,但如上所述,第一个更易读,所以这会使尺度倾向于第一个。

当您嵌套第二个方法时,编译器只会为您执行第一个方法。因此在速度记忆使用方面没有胜利。

答案 4 :(得分:1)

我想说这取决于。如果它是一个极不可能改变的静态实用方法,我可能会选择第二个,只是为了保持较小的行数。但这完全取决于。

答案 5 :(得分:1)

第一个在调试时有优势:当您在调试器中单步执行此代码时,您有机会轻松查看不同方法的返回值(即,使用调试器,您可以轻松查看{ {1}},xmlRequestxmlResponse)。

但是,我更喜欢第二种表示法,因为第一个版本过于冗长,我发现第一个版本比第二个版本更具可读性。但当然这是一个意见问题。