У меня довольно большой кусок кода, который создает / возвращает массив результатов поиска, который составлен из нескольких источников данных.Меня попросили включить метод ограничения даты, с помощью которого пользователи могут создавать массив на основе двух полей даты.Если одно из этих полей даты заполнено, скажем, называется его dateFrom, то массив будет возвращать данные после указанной даты.Аналогично, если заполнить dateTo, он будет заполнять массив предшествующими данными, а если оба, то, очевидно, будет заполняться на основе этого диапазона.
Это все приятно и легко сделать с помощью пары простых вложенных операторов if или регистра переключателя, но моя проблема в том, что это также будет означать, что мне придется повторять здоровенный кусок кода.Есть ли способ, как я могу предотвратить повторение одного и того же базового кода конструкции массива 4 раза?Я знаю, что это ужасный псевдо-код, но он понимает мою точку зрения:
if(condition1){
setItem1(getMethod());
setItem2(getMethod());
setItem3(getMethod());
} else if (condition2) {
setItem1(getMethod());
setItem2(getMethod());
setItem3(getMethod());
} else if (condition3) {
setItem1(getMethod());
setItem2(getMethod());
setItem3(getMethod());
} else {
setItem1(getMethod());
setItem2(getMethod());
setItem3(getMethod());
}
return ArrayList();
Стоит отметить, что, хотя это более обобщенный вопрос Java, я использую инфраструктуру JSF2, и этот метод происходит в bean-компоненте ViewScoped & isреализовано с использованием тега @PostContruct.
Cheers