Это зависит от того, почему вы хотите сослаться на ParamsPane
. Я могу придумать две причины и два разных решения.
Вы хотите обновить данные в ParamsPane
, поскольку данные в TabPane
изменились.
Если эти данные полностью отделимы от представления, вероятно, вам следует отделить их. Это означает следование шаблону Model-View-Controller . Оба экземпляра ParamsPane
и TabPane
могут обращаться к модели по отдельности. Так что между ними нет прямой ссылки.
Между этими двумя понятиями существует сильная связь, не имеющая отношения к данным.
Если предыдущий упомянутый пункт не имеет значения, и между двумя панелями существует действительно сильная связь, вы можете рассмотреть возможность написания определенного класса TabPane
, который хранит ссылку на класс ParamsPane
.
Мне кажется, что оба эти решения лучше, чем подход Singleton или Registry. Остерегайтесь, что я не слышал об этой модели прежде, но я полагаю, что понимаю ее намерения. Более подробную информацию о том, почему глобальные объекты состояния (в частности, синглтоны) являются плохой практикой , можно найти здесь .