चलिए सबसे सरल उदाहरण लें: आपके पास एक एप्लिकेशन है और आप केवल डिफ़ॉल्ट क्लासलोडर का उपयोग करते हैं। आपके पास एक वर्ग है, जो भी कारण से, आप तय करते हैं कि आवेदन में एक से अधिक उदाहरण नहीं होने चाहिए। (एक परिदृश्य के बारे में सोचें जहां कई लोग आवेदन के टुकड़ों पर काम करते हैं)।
यदि आप स्प्रिंग फ्रेमवर्क का उपयोग नहीं कर रहे हैं, तो सिंगलटन पैटर्न यह सुनिश्चित करता है कि आपके आवेदन में कक्षा के एक से अधिक उदाहरण नहीं होंगे। ऐसा इसलिए है क्योंकि आप 'नया' करके कक्षा के उदाहरणों को तत्काल नहीं कर सकते क्योंकि निर्माता निजी है। कक्षा का उदाहरण प्राप्त करने का एकमात्र तरीका वर्ग की कुछ स्थैतिक विधि को कॉल करना है (आमतौर पर 'getInstance' कहा जाता है) जो हमेशा एक ही उदाहरण देता है।
यह कहकर कि आप अपने आवेदन में स्प्रिंग फ्रेमवर्क का उपयोग कर रहे हैं, इसका मतलब है कि कक्षा के उदाहरण (नई या स्थैतिक विधियों जो कक्षा का उदाहरण लौटाते हैं) के नियमित तरीकों के अलावा, आप यह भी पूछ सकते हैं स्प्रिंग आपको उस वर्ग और स्प्रिंग का एक उदाहरण प्राप्त करने के लिए सुनिश्चित करेगा कि जब भी आप इसे उस कक्षा के उदाहरण के लिए पूछें तो यह हमेशा एक ही उदाहरण लौटाएगा, भले ही आपने सिंगलटन पैटर्न का उपयोग करके कक्षा नहीं लिखी हो। दूसरे शब्दों में, भले ही कक्षा में एक सार्वजनिक कन्स्ट्रक्टर है, यदि आप हमेशा उस वर्ग के उदाहरण के लिए वसंत से पूछते हैं, तो वसंत केवल आपके निर्माता के जीवन के दौरान उस निर्माता को कॉल करेगा।
आम तौर पर यदि आप वसंत का उपयोग कर रहे हैं, तो आपको केवल उदाहरण बनाने के लिए वसंत का उपयोग करना चाहिए, और आप कक्षा के लिए एक सार्वजनिक निर्माता हो सकते हैं। लेकिन अगर आपका कन्स्ट्रक्टर निजी नहीं है तो आप स्प्रिंग को छोड़कर सीधे कक्षा के नए उदाहरण बनाने से किसी को भी रोक नहीं रहे हैं।
यदि आप वास्तव में कक्षा के एक उदाहरण चाहते हैं, भले ही आप अपने आवेदन में स्प्रिंग का उपयोग करें और स्प्रिंग में वर्ग को सिंगलटन के रूप में परिभाषित करें, यह सुनिश्चित करने का एकमात्र तरीका है कि सिंगलटन पैटर्न का उपयोग करके कक्षा को भी लागू किया जाए। यह सुनिश्चित करता है कि एक उदाहरण होगा, चाहे लोग स्प्रिंग का उपयोग उदाहरण प्राप्त करने या वसंत को बाईपास करने के लिए करते हैं।
अगर मैं गलत हूं तो मुझे सही करें यदि मुझे किसी ऑब्जेक्ट को सिंगलटन के रूप में लागू करने की आवश्यकता है तो सिंगलटन पैटर्न को लागू करने की आवश्यकता नहीं है। वसंत का उपयोग कर बीन बनाना काम करेगा।स्प्रिंग ढांचे में सिंगलटन डिजाइन पैटर्न और सिंगलटन स्कोप से संबंधित मेरी समझ के साथ अब मैं थोड़ी उलझन में हूं। – Peeyush
वसंत आपको सिंगलटन पैटर्न का उपयोग करने के लिए मजबूर नहीं करता है। – lexicore