जावा में सिंगलटन पैटर्न को लागू करने का कोई भी सही तरीका नहीं है, हालांकि सार्वजनिक स्थिर अंतिम उदाहरण चर का उपयोग करना एक अच्छा तरीका है, बशर्ते आपको आलसी लोडिंग की आवश्यकता न हो और यूनिट परीक्षण के परिणामों के साथ रह सकें।
यदि इकाई परीक्षण एक मुद्दा है और आप अभी भी एक सिंगलटन चाहते हैं, तो निर्भरता इंजेक्शन का उपयोग करने पर विचार करें। यह आपको सिंगलटन जीवन चक्र के साथ एक साधारण उदाहरण को कॉन्फ़िगर करने की अनुमति देगा।
अंतिम संशोधक जावा संकलक और रनटाइम को अच्छा अनुकूलन और थ्रेड-सुरक्षा निर्णय लेने की अनुमति देता है। मैं हमेशा सिंगलटन घोषणा की इस शैली के साथ फाइनल का उपयोग करता हूं। मैं अब तक कहूंगा कि यह एक खराब डिजाइन विकल्प है जो सिंगलटन इंस्टेंस को म्यूटेबल करने की इजाजत देता है - क्योंकि क्लाइंट कोड अब प्रक्रिया के जीवनकाल के लिए समान मूल्य को देखने पर भरोसा नहीं कर सकता है।
यह एक विन्यास कारखाने वर्ग के साथ इकाई परीक्षण मुद्दे से निपटने के लिए संभव है:
private static final MySingleton INSTANCE = MySingletonFactory.create();
... अंतिम के लाभों को खोने के बिना।
यह आवश्यक नहीं है, लेकिन यह दिखाने के लिए अच्छा अभ्यास है कि मान स्थिर है। –