सिंगलटन पैटर्न क्रिएशनल टाइप पैटर्न से संबंधित है।
सिंगलटन डिज़ाइन पैटर्न का उपयोग तब किया जाता है जब हमें यह सुनिश्चित करने की आवश्यकता होती है कि किसी विशेष क्लास का केवल एक ऑब्जेक्ट इंस्टेंशिएटेड हो। बनाया गया वह सिंगल इंस्टेंस पूरे एप्लिकेशन में कार्यों को समन्वयित करने के लिए जिम्मेदार होता है।
इम्प्लीमेंटेशन गाइडलाइन्स के हिस्से के रूप में हमें यह सुनिश्चित करने की आवश्यकता है कि क्लास के सभी कंस्ट्रक्टर्स को प्राइवेट घोषित करके क्लास का केवल एक इंस्टेंस मौजूद हो। साथ ही, सिंगलटन एक्सेस को कंट्रोल करने के लिए हमें एक स्टैटिक प्रॉपर्टी प्रदान करने की आवश्यकता है जो ऑब्जेक्ट का एक सिंगल इंस्टेंस लौटाती है।
उदाहरण
public sealed class Singleton
{
private static int counter = 0;
private static Singleton instance = null;
public static Singleton GetInstance
{
get
{
if (instance == null)
instance = new Singleton();
return instance;
}
}
private Singleton()
{
counter++;
Console.WriteLine("Counter Value " + counter.ToString());
}
public void PrintDetails(string message)
{
Console.WriteLine(message);
}
}
class Program
{
static void Main()
{
Singleton fromFacebook = Singleton.GetInstance;
fromFacebook.PrintDetails("From Facebook");
Singleton fromTwitter = Singleton.GetInstance;
fromTwitter.PrintDetails("From Twitter");
Console.ReadLine();
}
}
आउटपुट
Counter Value 1
From Facebook
From Twitter
व्याख्या:
sealedसुनिश्चित करता है कि क्लास इनहेरिट न हो और डेराइव्ड क्लास में ऑब्जेक्ट इंस्टेंशिएशन प्रतिबंधित हो- Null के साथ इनिशियलाइज़्ड प्राइवेट प्रॉपर्टी
- नल कंडीशन के आधार पर सुनिश्चित करता है कि ऑब्जेक्ट का केवल एक इंस्टेंस बने
- प्राइवेट कंस्ट्रक्टर सुनिश्चित करता है कि ऑब्जेक्ट क्लास के अलावा कहीं और इंस्टेंशिएट न हो
- पब्लिक मेथड जिसे सिंगलटन इंस्टेंस के माध्यम से इनवोक किया जा सकता है