Singleton Pattern
Singleton pattern is a design pattern that restricts the instantiation of a class to one object. Singletons are used for centralized management of internal or external resources and they provide a global point of access to themselves.
Sample code to demonstrate singleton pattern
public class SingleTonclass
{private static SingleTonclass singleTonObject;
private UserRepository userRepository;
// private constructor make sure to avoid creating object using new keyword
private SingleTonclass ()
{
userRepository = new UserRepository();
}
// public method which will be called
public Clients GetName(UserInfo userObject)
{
//in repository class used Iterator Pattern
var user = from m in userRepository.GetUserObject(userObject)
select m;
var clientInfo = user.FirstOrDefault();
return clientInfo;
}
public static SingleTonclass CreateInstance()
{
// this object will be used with lock, so that it will be always one thread which will be executing
the code
object myObject = new object();
// put a lock on myObject. We won't be able to use singleTonObject becuase it will be null. lock is
to make the object thread safe.
// lock can't be worked with null objects.
lock (myObject)
{
// check whether the instance was there. If it's not there, then create an instance.
if (singleTonObject == null)
singleTonObject = new SingleTonclass ();
}
return singleTonObject;
}
}
Calling Method
public
ViewResult Index(UserInfo
userObject)
{
//singleton Implementation goes here....
SingleTonclass myObject =
SingleTonclass.CreateInstance();
var clientInfo = myObject.GetName(userObject);
return view(clientInfo);
}
Join the conversation! Your thoughts help the community grow.