Недавно я узнал (в классе, основанном на С#), что иногда иногда считается опасным регистрировать прослушиватели событий в конструкторе объектов, поскольку этим прослушивателям событий дается ссылка на этот объект до того, как объект полностью инициализирован, и может (при наименее теоретически) пытаются получить доступ к объекту до завершения строительства.
Из того, что я понимаю, доступ к объекту до завершения строительства может привести к сбою, по крайней мере на некоторых языках... если это не вызовет крах, тогда нам будет только заботиться о том, чтобы регистрация происходила последним, поэтому наш объект готов принимать события, когда мы регистрируем его слушателей.
Теперь я начинаю с нового графического интерфейса Swing и замечаю, что моя стандартная практика при создании Swing GUI заключается в подключении слушателей событий в конструкторе.
Кажется маловероятным, что слушатели событий компонентов Swing будут вызваны до завершения конструктора, поскольку они предположительно не подключены до тех пор, пока компонент не будет добавлен в видимый контейнер Swing, что может произойти только после построения.
Итак, есть ли настоящая причина избежать этого анти-шаблона при работе в Swing? И если да, то какой самый простой способ это сделать?