Design Pattern->Creational Pattern->Singleton.
The singleton pattern is a design pattern that restricts the Instantiation of a
class to one object. It can be used as a global variable. It can be serialized
for later purpose. I haven't seen any project without Singleton class.
There are many ways to write Singleton class. Here I will be giving a simple
implementation in C# as well as Theradsafe.
Class: SingleTon.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.ComponentModel;
using
System.Threading;
namespace
SingleTonSample
{
sealed class
SingleTon
{
private static
SingleTon single =
new SingleTon();
int myUniqueKey = 0;
public int
UniqueKey()
{
return
Interlocked.Increment(ref
myUniqueKey);
}
public static
SingleTon Instance
{
get { return
single; }
}
private SingleTon(){ }
public void
PrintMe()
{
Console.WriteLine("Singleton
Class Testing");
}
}
}
Class: Program.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
SingleTonSample
{
class Program
{
static void
Main(string[] args)
{
SingleTon.Instance.PrintMe();
int Value =
SingleTon.Instance.UniqueKey();
Console.WriteLine("Unique
Value =" + Value);
}
}
}