Так что это может показаться простым, но у меня есть метод, который имеет для l oop внутри, внутри forl oop, метод createprints нуждается в карте «параметров», которую он получает из getParameters, теперь есть 2 типы отчетов, один имеет общий набор параметров, а другой имеет этот общий набор и собственный набор.
У меня есть два варианта:
Либо есть метод 2 getparameters, один из которых является general и другой, который предназначен для rp2, но также вызывает метод общих параметров. Если я сделаю это, то имеет смысл добавить условное выражение перед для l oop следующим образом:
theMethod(){
if (rp1){
for loop{
createPrints(getgenParameters())
do general forloop stuff
}
}else{
for loop{
createPrints(getParameters())
do general forloop stuff
}
}
}
Таким образом, он только один раз проверяет, какой метод параметров вызывать, вместо того, чтобы иметь оператор if внутри l oop, так что он проверяет каждую итерацию (это плохо, потому что тип отчета никогда не изменится в течение l oop), но тогда повторение for l oop выглядит некрасиво и совсем не чисто Есть ли более чистый способ создания этого?
Другой вариант - передать логическое значение в метод get параметров, и в основном вы проверяете, в каком типе отчета это происходит, и на основании того, что вы создаете карту, однако это также добавляет условное выражение на каждой итерации.
С точки зрения производительности имеет смысл иметь условное выражение вне l oop, чтобы оно не проверялось избыточно на каждой итерации, но оно не выглядит чистым, и мой босс действительно заботится о том, как выглядит чистый код, ему не понравилось, что я использовал блок кода if else вместо того, чтобы делать это это троичные операторы, так как троичный использует только одну строку (я думаю, что производительность все та же нет?).
Забыл упомянуть, что я использую java, я не могу назначать функции переменным или использовать обратные вызовы Внутри метода был блок кода if else перед для l oop что-то вроде
String aVariable;
if(condition){
aVariable= value1;
}else{
aVariable =value2;
}
, поэтому я изначально хотел просто создать логическую переменную вроде isreport1 и внутри блока кода if / else также назначьте значение, потому что оно использовало то же условие. И затем, как упоминалось ранее, передайте параметр, но мой босс снова сказал, что не следует использовать логические значения в параметрах, так что, в таком случае, я не должен делать это здесь?