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