जावा सिंगलटन (उदाहरण के साथ)

इस ट्यूटोरियल में, हम सिंगलटन डिज़ाइन पैटर्न के बारे में जानेंगे और उदाहरणों की मदद से इसे जावा में कैसे लागू किया जा सकता है।

सिंगलटन जावा के लिए विशिष्ट विशेषता के बजाय एक डिज़ाइन पैटर्न है। यह सुनिश्चित करता है कि एक वर्ग का केवल एक उदाहरण बनाया जाता है।

एक डिजाइन पैटर्न हमारे कोड लाइब्रेरी की तरह है जिसमें दुनिया भर के प्रोग्रामरों द्वारा साझा की गई विभिन्न कोडिंग तकनीक शामिल हैं।

जावा सिंगलटन

यहाँ हम जावा में सिंगलनेट का उपयोग कैसे कर सकते हैं।

  • एक privateनिर्माणकर्ता बनाएं जो कक्षा के बाहर एक वस्तु बनाने के लिए प्रतिबंधित करता है
  • एक privateविशेषता बनाएँ जो सिंगलटन ऑब्जेक्ट को संदर्भित करता है।
  • एक public staticविधि बनाएं जो हमें बनाई गई वस्तु को बनाने और उस तक पहुंचने की अनुमति देता है। विधि के अंदर, हम एक ऐसी स्थिति बनाएंगे जो हमें एक से अधिक ऑब्जेक्ट बनाने से रोकती है।

यहाँ एक उदाहरण है।

 class SingletonExample ( // private field that refers to the object private static SingletonExample singleObject; private SingletonExample() ( // constructor of the SingletonExample class ) public static SingletonExample getInstance() ( // write code that allows us to create only one object // access the object as per our need ) ) 

उपरोक्त उदाहरण में,

  • private static SingletonExample singleObject - कक्षा की वस्तु का संदर्भ।
  • private SingletonExample() - एक निजी कंस्ट्रक्टर जो वस्तुओं को कक्षा के बाहर बनाने पर रोक लगाता है।
  • public static SingletonExample getInstance()- यह विधि कक्षा की एकमात्र वस्तु के संदर्भ को लौटाती है। चूंकि विधि स्थिर है, इसे वर्ग नाम का उपयोग करके एक्सेस किया जा सकता है।

सिंगलटन क्लास का उपयोग

डेटाबेस के साथ काम करते समय सिंगलटन का उपयोग किया जा सकता है। सभी ग्राहकों के लिए समान कनेक्शन का पुन: उपयोग करते हुए डेटाबेस तक पहुंचने के लिए कनेक्शन पूल बनाने के लिए उनका उपयोग किया जा सकता है। उदाहरण के लिए,

 class Database ( private static Database dbObject; private Database() ( ) public static Database getInstance() ( // create object if it's not already created if(dbObject == null) ( dbObject = new Database(); ) // returns the singleton object return dbObject; ) public void getConnection() ( System.out.println("You are now connected to the database."); ) ) class Main ( public static void main(String() args) ( Database db1; // refers to the only object of Database db1= Database.getInstance(); db1.getConnection(); ) ) 

जब हम प्रोग्राम चलाते हैं, तो आउटपुट होगा:

 अब आप डेटाबेस से जुड़े हैं। 

हमारे उपरोक्त उदाहरण में,

  • हमने एक सिंगलटन क्लास डेटाबेस बनाया है।
  • DbObject एक वर्ग प्रकार का क्षेत्र है। यह क्लास डेटाबेस के ऑब्जेक्ट को संदर्भित करेगा।
  • निजी निर्माणकर्ता Database()वर्ग के बाहर वस्तु निर्माण को रोकता है।
  • स्टैटिक क्लास टाइप विधि क्लास getInstance()के उदाहरण को बाहरी दुनिया में लौटाती है।
  • मुख्य वर्ग में, हमारे पास वर्ग प्रकार चर db1 है। हम getInstance()डेटाबेस का एकमात्र उद्देश्य प्राप्त करने के लिए db1 का उपयोग कर रहे हैं ।
  • getConnection()डेटाबेस के ऑब्जेक्ट का उपयोग करके विधि को केवल एक्सेस किया जा सकता है।
  • चूंकि डेटाबेस में केवल एक ही वस्तु हो सकती है, सभी ग्राहक एकल कनेक्शन के माध्यम से डेटाबेस तक पहुंच सकते हैं।

यह ध्यान रखना महत्वपूर्ण है कि, केवल कुछ परिदृश्य हैं (जैसे लॉगिंग) जहां सिंगलटन समझ में आता है। यहां तक ​​कि एक डेटाबेस कनेक्शन आमतौर पर एक सिंगलटन नहीं होना चाहिए।

हम आपको सलाह देते हैं कि आप एकल का उपयोग करने से पूरी तरह से बचें यदि आप सुनिश्चित नहीं हैं कि इसका उपयोग करना है या नहीं। और जानें: सिंग्लटन के बारे में इतना बुरा क्या है?

दिलचस्प लेख...