Я видел объекты, созданные в коде Java без сохранения ссылки на объект. Например, в плагине eclipse я видел SWT Shell, созданный так:
new Shell();
Этот новый объект Shell не сохраняется в переменной, но на него будут ссылаться до тех пор, пока окно не будет удалено, что [по моему мнению?] Происходит по умолчанию при закрытии окна.
Плохо ли создавать подобные объекты, не сохраняя ссылки на них? Или библиотека была плохо спроектирована? Что если мне не нужна ссылка, а нужны только «побочные эффекты» объекта? Должен ли я хранить ссылку в любом случае?
ОБНОВИТЬ:
Надо признать, мой приведенный выше пример плохой. Хотя я видел элементы пользовательского интерфейса, созданные таким образом, создание подобной оболочки SWT, вероятно, было бы бессмысленным, поскольку вам нужно вызывать метод open в экземпляре оболочки. AIX предлагает лучшие примеры, такие как следующие из руководства по параллелизму Java :
(new HelloThread()).start();
Эта практика видна во многих контекстах, поэтому вопросы остаются. Это хорошая практика?
Shell.createTopLevelShell()
или любой другой, по сравнению с использованием конструктора в этом случае. Но функционально есть небольшая разница.)
dispose()
d: Правило 1: Если вы его создали, вы его утилизируете. eclipse.org/articles/swt-design-2/swt-design-2.html