- टॉमकैट प्रत्येक वेब एप्लिकेशन के लिए नए क्लास लोडर बनाता है।
- तो यदि आपकी सिंगलटन कक्षा युद्ध फ़ाइल में संग्रहीत है, तो उसी युद्ध फ़ाइल में टॉमकैट कंटेनर में दो उदाहरण होंगे। यह प्रत्येक युद्ध फ़ाइल के लिए दो अलग सिंगलटन क्लास बनाता है।
- यदि सिंगलटन क्लास टॉमकैट के शेयर लाइब्रेरी पथ में है, तो टोमकैट दोनों एप्लिकेशन के लिए केवल एक सिंगलटन उदाहरण बनाता है।
JVM सादृश्य:
JVM बड़ा हवेली की तरह है। इसमें सेरेरल आवेदक और पुस्तकालयों के साथ संयुक्त परिवार शामिल है।
क्लासलोडर परिवार के सदस्य हैं, प्रत्येक परिवार सदस्य एक क्लासलोडर का प्रतिनिधित्व करता है (प्रतिनिधि पदानुक्रम के रूप में काम करता है विरासत पदानुक्रम नहीं)। नोट: क्लासलोडर कक्षा है, यह कई उदाहरण बना सकता है।
एप्लिकेशन उपकरण की तरह हैं। उदाहरण के लिए: वॉशिंग मशीन, फ्रिज, एयर कूलर, टेलीविजन, डाइनिंग टेबल, सोफा और इतने पर ...
पुस्तकालय प्रत्येक व्यक्ति की अपनी व्यक्तिगत लाइब्रेरी है। माता-पिता की स्वतंत्रता में हर कोई खोज नहीं पाता है तो उसे अपनी लाइब्रेरी में खोजें।
सीमाएं: यदि पिता एक उपकरण खरीदते हैं तो उनके बच्चे इसका उपयोग कर सकते हैं, लेकिन इसका उपयोग उनके माता-पिता और सिबिलिंग द्वारा नहीं किया जा सकता है। प्रत्येक एप्लिकेशन एक ही पुस्तकालय के विभिन्न संस्करणों का उपयोग कर सकता है। यानी यदि पुस्तकालय में एक ही किताब के दो या दो से अधिक संस्करण होते हैं, तो यह जो भी पुस्तक पहले उपलब्ध है उसे चुनता है।
प्रत्येक परिवार संख्या केवल एक अद्वितीय उपकरण का उपयोग कर सकती है।
घर में, हम उसी संस्करण के mulitple उपकरण का उपयोग कर सकते हैं। तो, JVM हमें समान संस्करणों के एकाधिक अनुप्रयोग चलाने की अनुमति देता है।
कचरा कलेक्टर हवेली में एक सेवा है, जो एक डिमन के रूप में घूमता है, जो किसी भी प्रकार के ऑब्जेक्ट को साफ़ कर सकता है।
एक स्थैतिक चर का दायरा प्रति क्लासलोडर तक सीमित है।
@Evgenniy, क्या इसका मतलब यह है कि मेरे एकल एप्लिकेशन में मैं विभिन्न वर्ग लोडरों (बस एक विचार) का उपयोग करके 2 सिंगलटन ऑब्जेक्ट्स बना सकता हूं .?? – Learner
हां, 2 क्लासलोडर बनाएं (आप URLClassLoader का उपयोग कर सकते हैं), क्लासलोडर.लोड क्लास (क्लासनाम) के साथ एक ही कक्षा लोड करें - आपको 2 अलग-अलग क्लास इंस्टेंस मिलेगा –
क्या इसका मतलब सिंगलटन टूटा हुआ है? – Learner