Можем ли мы создать обратный вызов между несколькими классами в javafx - PullRequest
0 голосов
/ 17 сентября 2018

Я имею в виду,

, если class A нужны данные от другого class B, и эти данные поступают в class B из class C,

, а затем class Bдает данные для class A (объединение данных с данными class C и некоторыми собственными данными).

Теперь class B может передавать данные только на class A, только если они получены от class C.

Пример , class A запускает всплывающее окно, которое определено в class B, и теперь class B имеет listview, а данные в listview находятся в CТеперь, если пользователь нажимает listitem в listview, он должен закрыть всплывающее окно и отправить значение в listview на class A.

Я новичок в Java, поэтому кто-то, пожалуйста, сообщитемне основное использование интерфейсов и обратных вызовов здесь.Заранее спасибо.

1 Ответ

0 голосов
/ 17 сентября 2018

Для этого вы хотите использовать шаблон под названием Listener или Observer.https://en.wikipedia.org/wiki/Observer_pattern

Общая концепция: слушатель (или несколько слушателей) вызывается наблюдаемым классом и получает измененные данные.Слушатель может затем что-то сделать с данными.

В вашем случае: B - это слушатель C, а A - это слушатель B.Когда C получает новые данные, он сообщает B.B затем объединяет данные и сообщает A.После информирования A вся цепочка возвращается к C.

Небольшое предостережение, о котором вам нужно знать: если вы выполняете какую-либо операцию блокировки (например, чтение из файловой системы / базы данных / веб-службы) в одном из прослушивателейВы заблокируете наблюдаемый класс.

Редактировать: Хорошим примером Концепции Слушателя являются ActionListeners (https://docs.oracle.com/javase/tutorial/uiswing/events/actionlistener.html) в java swing.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...