Какой код с точки зрения проектирования более правильный
Такой:
public List
switch(expression){
case 1:
list = getList1();
break;
case 2:
list = getList2();
break;
...
}
return list;
}
Или такой:
public List
В данный момент мы никак не изменяем и не предопалагаем, что нам нужно изменять список list в функции getStringList
Хотелось бы прочитать обоснованный ответ в пользу того или иного варианта.
В первом случае у нас одна точка выхода их функции, в switch мы только присваиваем переменную, которую возвращаем, а во втором случае у нас получается несколько точек выхода.
Ответ
В языках с RAII или try/finally нет никакого правила, по которому предпочтительнее единственная точка возврата из функции. Поэтому писать надо так, как легче читать, никакого другого правила тут нет.
В вашем случае, как мне кажется, введение дополнительной переменной служит только цели единственной точки возврата в функции, так что я бы предпочёл более короткий вариант с return из середины switch. Введение дополнительной переменной заставляет читателя помнить о результате до конца switch'а, и держать наличие его в голове, в то время как ранний return позволяет сразу отбросить этот случай.
Но это, снова-таки, вопрос личных литературных предпочтений. Пишите, как вам кажется лучше.
Комментариев нет:
Отправить комментарий