Я часто сталкиваюсь с подобной ситуацией.
class A{
public static boolean flag = true;
public void method(){
// calls method in class B
B b = new B();
while(someCondition){
b.method();
}
}
}
.
class B{
public void method(){
if(A.flag){
// Read all data from a flat file and store it in HashMAp/ArrayList etc
//only for the first time
A.flag = false;
}
// Manipulate the data
}
}
Я, кажется, довольно часто сталкиваюсь с подобной ситуацией в совершенно разных ситуациях.
Это как обычно с этим справляются? Я чувствую себя немного глупо и неестественно, используя статические переменные и операторы if для решения проблемы.
В этом случае я не хочу вызывать издержки при чтении данных каждый раз, когда метод выполняется.