Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 哪个版本更好?_Java - Fatal编程技术网

Java 哪个版本更好?

Java 哪个版本更好?,java,Java,还是连接版本?为什么呢 } 谢谢, Sarah我更喜欢第一个版本,因为它更容易阅读,没有太多嵌套参数。除了可读性之外,性能上不应该有差异 第一个更好。因为它更具可读性。 任何程序员都能写出计算机能理解的代码。 优秀的程序员编写的代码是人类能够理解的。他们都是一样的,但正如前面提到的,第一个代码更容易阅读,因此这将有利于第一个代码 当您在第二个方法中嵌套方法时,编译器只需执行您在第一个方法中为您所做的操作。因此,在速度内存使用方面没有赢家。我认为这要看情况而定。如果它是一种静态实用方法,极不

还是连接版本?为什么呢

}

谢谢,
Sarah

我更喜欢第一个版本,因为它更容易阅读,没有太多嵌套参数。除了可读性之外,性能上不应该有差异

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

他们都是一样的,但正如前面提到的,第一个代码更容易阅读,因此这将有利于第一个代码


当您在第二个方法中嵌套方法时,编译器只需执行您在第一个方法中为您所做的操作。因此,在速度内存使用方面没有赢家。

我认为这要看情况而定。如果它是一种静态实用方法,极不可能改变,我可能会使用第二种方法,以保持行数更小。但这完全取决于情况。

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

首先,我要解析的符号大约是原来的一半(12对21)。对于我来说,看一眼第一种方法并理解它在做什么是不可能的,即使它所做的和第二种方法一样简单

第二,在第二个示例中,数据流是显而易见的:您只需往下读即可。在第一行中,我必须仔细查看,以确保一行中的变量在下一行中使用(特别是因为两个临时变量以完全相同的5个字符开头)。这正是有人以后要更新的那种情况,错误地留下了一个额外的变量赋值——我已经见过无数次了

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


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

第一种方法在调试时有一个优点:当您在调试器中单步执行此代码时,您有机会轻松查看不同方法的返回值(即,使用调试器,您可以轻松查看
xmlRequest
xmlResponse
response
中的内容)


然而,我更喜欢第二种符号,因为第一种版本过于冗长,我不觉得第一种版本比第二种版本更可读。但这当然是一个意见问题。

也许我问了一个愚蠢的问题。很明显,第一种版本更清晰,所以更好。我问这个问题的原因是因为马丁·福勒的重构书中说应该避免使用临时变量。但我想它不适用于这种情况。我本来打算添加一些关于数据流和用新代码更新的内容,但你却击败了我。回答得好。实际上,在这种情况下,这不是一个意见问题。你可以很容易地设想一组测试来确定上面哪一项有两种情况在阅读时更容易出错。我的直觉是,这样一套测试将显示第一种情况比第二种情况更容易出错,原因在肯的回答中给出。


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)));