मैंने ऑब्जेक्ट के संदर्भ को संग्रहीत किए बिना जावा कोड में बनाई गई वस्तुओं को देखा है। उदाहरण के लिए, एक ग्रहण प्लगइन में मैंने एक SWT शेल बनाया है, जो इस प्रकार है:
new Shell();
यह नया शेल ऑब्जेक्ट एक चर में संग्रहीत नहीं है, लेकिन जब तक खिड़की का निपटान नहीं किया जाता है, तब तक यह संदर्भित रहेगा कि [मुझे विश्वास है?] डिफ़ॉल्ट रूप से तब होता है जब खिड़की बंद होती है।
क्या उनके संदर्भ को संचित किए बिना इस तरह की वस्तुओं का निर्माण करना बुरा व्यवहार है? या पुस्तकालय खराब डिजाइन किया गया था? क्या होगा यदि मुझे संदर्भ की आवश्यकता नहीं है, लेकिन केवल वस्तु के "दुष्प्रभाव" चाहते हैं? क्या मुझे किसी भी तरह से एक संदर्भ स्टोर करना चाहिए?
अद्यतन करें:
माना, मेरा उपरोक्त उदाहरण खराब है। जबकि मैंने यूआई तत्वों को इस तरह से देखा है, इस तरह से एक एसडब्ल्यूटी शेल बनाना संभवतः व्यर्थ होगा क्योंकि आपको शेल उदाहरण पर खुली विधि को कॉल करने की आवश्यकता है। कर रहे हैं बेहतर aix द्वारा दिए गए उदाहरणों से निम्नलिखित के रूप में इस तरह के जावा संगामिति ट्यूटोरियल :
(new HelloThread()).start();
यह अभ्यास कई संदर्भों में देखा जाता है, इसलिए प्रश्न बने हुए हैं। क्या यह अच्छा अभ्यास है?
Shell.createTopLevelShell()
इस मामले में एक कंस्ट्रक्टर का उपयोग करके, जैसे या जो भी, बनाम एक स्थिर विधि है, यह बेहतर होगा । लेकिन कार्यात्मक रूप से इसमें बहुत अंतर है।)
dispose()
d होना चाहिए : नियम 1: यदि आपने इसे बनाया है, तो आप इसे डिस्पोज करते हैं। eclipse.org/articles/swt-design-2/swt-design-2.html