


ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में सिंगलटन क्या है?
ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, सिंगलटन एक डिज़ाइन पैटर्न है जो यह सुनिश्चित करता है कि एक वर्ग के पास केवल एक उदाहरण है, और उस उदाहरण तक पहुंच का एक वैश्विक बिंदु प्रदान करता है। सिंगलटन पैटर्न का उद्देश्य एक वर्ग के एकल, साझा उदाहरण की अनुमति देना है, जिसे एक एप्लिकेशन के कई हिस्सों से एक्सेस किया जा सकता है। सिंगलटन एक ऐसा वर्ग है जिसमें एक निजी कंस्ट्रक्टर और एक सार्वजनिक स्थैतिक विधि होती है जो समान उदाहरण लौटाती है कक्षा का. इसका मतलब यह है कि क्लास का केवल एक उदाहरण बनाया जा सकता है, और एक नया इंस्टेंस बनाने के अन्य सभी प्रयास उसी मौजूदा इंस्टेंस को लौटाएंगे। यहां जावा में एक सरल सिंगलटन क्लास का एक उदाहरण दिया गया है:
```
पब्लिक क्लास सिंगलटन {
निजी स्थैतिक सिंगलटन उदाहरण;
निजी सिंगलटन() {}
सार्वजनिक स्थैतिक सिंगलटन getInstance() {
यदि (उदाहरण == शून्य) {
उदाहरण = नया सिंगलटन();
}
वापसी उदाहरण;
}
}
`` `
इस उदाहरण में, `getInstance()` विधि जांच करती है कि क्या क्लास का एक उदाहरण पहले ही बनाया जा चुका है, और यदि नहीं, तो यह एक नया उदाहरण बनाता है। यह सुनिश्चित करता है कि क्लास का केवल एक ही इंस्टेंस बनाया जाए।
सिंगलटन का उपयोग करने के लाभों में शामिल हैं:
* यह सुनिश्चित करना कि क्लास का केवल एक ही इंस्टेंस बनाया जाए, जो एक ही ऑब्जेक्ट के कई इंस्टेंस के साथ समस्याओं को रोकने में मदद कर सकता है।
* प्रदान करना इंस्टेंस तक पहुंच का एक वैश्विक बिंदु, जो किसी एप्लिकेशन के कई हिस्सों से इंस्टेंस का उपयोग करना आसान बना सकता है। * एक केंद्रीकृत नियंत्रण बिंदु की अनुमति, जहां क्लास के सभी इंस्टेंस को एक ही एक्सेस बिंदु के माध्यम से प्रबंधित किया जा सकता है .
हालांकि, सिंगलटन का उपयोग करने में कुछ संभावित कमियां भी हैं, जिनमें शामिल हैं:
* उनका परीक्षण करना मुश्किल हो सकता है, क्योंकि उन्हें अक्सर मॉकिंग या परीक्षण के अन्य रूपों की आवश्यकता होती है जो सीधे नहीं होते हैं।
* वे यह समझना मुश्किल बना सकते हैं कि कैसे एक एप्लिकेशन को संरचित किया गया है, क्योंकि सिंगलटन इंस्टेंस का उपयोग एप्लिकेशन के कई अलग-अलग हिस्सों में किया जा सकता है। * वे घटकों के बीच सख्त युग्मन का कारण बन सकते हैं, जहां एप्लिकेशन क्लास के एकल इंस्टेंस पर निर्भर हो जाता है। कुल मिलाकर, सिंगलटन एक उपयोगी हो सकता है कक्षाओं के उदाहरणों को प्रबंधित करने के लिए उपकरण, लेकिन उनका उपयोग सावधानी से किया जाना चाहिए और केवल तभी किया जाना चाहिए जब यह विशिष्ट उपयोग के मामले के लिए उपयुक्त हो।



