Я не мог найти ответ на этот вопрос в Google, так что здесь.Можно ли использовать статический экземпляр в Java?
Можно ли использовать объект Static, чтобы остальная часть программы могла ссылаться на объект? Я точно не знаю, как уточнить мой вопрос, поэтому я просто покажу пример кода.
public class Client {
Frame f;
private static Client mainClient;
public static void main(String[] args){
new Client().init();
}
private void init(){
mainClient = this;
f = new Frame();
}
public static Client getClient() {
return mainClient;
}
public Frame getFrame(){
return f;
}
}
Таким образом, допустимо ли использовать метод getClient() по всей программе, чтобы получить доступ к объекту кадра, в отличие от отправки его в качестве параметра (большинство) объектов я создаю? Кадр используется во всей программе, и добавление его в качестве параметра просто добавляет к каждому конструктору один параметр.
Thanks
Важно отметить, что на самом деле нет такой вещи, как «статический экземпляр». Существуют статические * переменные *, но объект не является по своей сути статическим или нет. –
@ Jtvd78 Короткий ответ: это абсолютно приемлемо. Просто следите за потокобезопасностью, если вы используете потоки. – emesx
Было бы интересно спросить: 1) будет ли всегда один кадр в течение всего срока службы этого приложения, 2) нужно ли всем частям программы получить доступ ко всему кадру и 3) должна ли быть модель данных а не Frame. –