从设计的角度来看,哪个代码更正确
这样的:
public List<String> getStringList(int expression){
List<String> list;
switch(expression){
case 1:
list = getList1();
break;
case 2:
list = getList2();
break;
...
}
return list;
}
或者像这样:
public List<String> getStringList(int expression){
switch(expression){
case 1:
return getList1();
case 2:
return getList2();
...
}
}
目前我们没有修改或建议我们需要修改list.getStringList
我想阅读一个合理的答案,支持一个或另一个选项。
在第一种情况下,我们有一个函数的退出点,switch我们只分配我们返回的变量,在第二种情况下,我们得到几个退出点。
在带有 RAII 或 try/finally 的语言中,没有规定首选函数的单个返回点。因此,必须以更易于阅读的方式编写,这里没有其他规则。
在您的情况下,在我看来,引入一个额外的变量仅用于函数中的单个返回点的目的,所以我更喜欢
return中间的较短的 cswitch。附加变量的引入迫使读者记住结果直到switch'a 的结尾,并牢记在心,而早期的变量return允许您立即丢弃这种情况。但这又是个人文学偏好的问题。写出你觉得最好的方式。