Каков наилучший способ обмена данными между отдельными классами в Java?У меня есть куча переменных, которые используются разными классами в разных файлах по-разному.Позвольте мне попытаться проиллюстрировать упрощенную версию моей проблемы:
Это был мой код раньше:
public class Top_Level_Class(){
int x, y;
// gets user input which changes x, y;
public void main(){
int p, q, r, s;
// compute p, q, r, s
doA(p,q,r);
doB(q,r,s);
}
public void doA(int p, int q, int r){
// do something that requires x,y and p, q, r
}
public void doB(int q, int r, int s){
// does something else that requires x, y and q, r, s
}
}
Теперь это выглядит примерно так:
public class Top_Level_Class(){
int x, y;
SomeClass1a a = new SomeClass1a();
SomeClass1a b = new SomeClass1b();
// gets user input which changes x, y;
public void main(){
int p, q, r, s;
// compute p, q, r, s
a.doA(p,q,r);
b.doB(q,r,s);
}
public class SomeClass1a() { // in its own separate file
public void doA(int p, int q, int r){
// do something that requires x,y and p, q, r
}
}
public class SomeClass1b() { // in its own separate file
public void doB(int q, int r, int s){
// does something else that requires x, y and q, r, s
}
}
Итакв любом случае, должен ли я каждый раз передавать x и y (где x, y - переменные, хранящиеся в классе помощника func)?
a.set(x,y);
a.doA(p,q,r);
Моя идея заключалась в том, чтобы иметь специальный контейнерный класс, в котором содержатся x и y.Класс верхнего уровня будет иметь экземпляр класса контейнера и изменять x, y с помощью методов set.
// in the top level class:
Container c = new Container(x,y);
a.setContainer(c);
b.setContainer(c);
Мои вспомогательные классы также будут иметь экземпляр контейнера, и он будет указывать на тот же экземпляр, что и на верхнем уровне.Таким образом они получают доступ к тому же x, y, что и на верхнем уровне.
Я хотел бы знать, должен ли я
- Использовать класс контейнера
- Загрузить x, у каждый раз в подклассы
- ??Какой-то лучший метод ??