Java kodunda yaratılmış nesneleri, nesneye bir referans kaydetmeden gördüm. Örneğin, bir eclipse eklentisinde şöyle bir SWT Kabuğu gördüm:
new Shell();
Bu yeni Shell nesnesi değişkende saklanmaz, ancak pencere kapatıldığında varsayılan olarak [[inanıyorum mu?] Olur.
Onlara bir referans kaydetmeden böyle nesneler oluşturmak kötü bir uygulama mıdır? Yoksa kütüphane kötü bir şekilde mi tasarlandı? Ya bir referansa ihtiyacım yoksa, ancak nesnenin sadece "yan etkilerini" istiyorsam? Yine de referans saklamalı mıyım?
GÜNCELLEŞTİRME:
İtiraf etmek gerekirse, yukarıdaki örneğim zayıf. Bunun gibi yaratılmış UI öğelerini görmeme rağmen, bunun gibi bir SWT Kabuğu oluşturmak büyük olasılıkla anlamsız olacaktır, çünkü Shell örneğinde açık yöntemi çağırmanız gerekir. Java eşzamanlılık eğitiminde aşağıdakiler gibi aix tarafından sağlanan daha iyi örnekler vardır :
(new HelloThread()).start();
Bu uygulama birçok bağlamda görülmektedir, bu yüzden sorular devam etmektedir. İyi bir uygulama mı?
Shell.createTopLevelShell()ya da her türlü, bu durumda bir yapılandırıcı kullanmak vs Ama işlevsel küçük bir fark var..)
dispose()d olmalıdır : Kural 1: Eğer oluşturduysanız, onu atarsınız. eclipse.org/articles/swt-design-2/swt-design-2.html