singleton – Binary Robot http://binary-robot.com Thu, 22 Aug 2013 21:37:45 +0000 en-US hourly 1 https://wordpress.org/?v=4.6.29 Singleton Class http://binary-robot.com/singleton-class/ Fri, 08 Mar 2013 02:32:08 +0000 http://binary-robot.com/?p=65 The Singleton Design Pattern ensures that only a single instance of a given object can exist.

It does this by making the class constructor private so that it [the singleton itself] has full control over when the class instance is created.  In order to gain access to an instance of a class that implements the Singleton pattern, the developer must call a shared/static method of that Singleton class.

A VB example of a Singleton

Public Class SingletonSample

 

‘shared members

Private Shared _instance As New SingletonSample

 

Public Shared Function Instance() As SingletonSample

Return _instance

End Function

 

‘instance members

Private Sub New()

‘public instantiation disallowed

End Sub

 

‘other instance members

‘…

 

End Class

A C# example of a Singleton

public class SingletonSample

{

//shared members

private static SingletonSample _instance = new SingletonSample();

 

public static SingletonSample Instance()

{

return _instance;

}

 

//instance members

private SingletonSample()

{

//public instantiation disallowed

}

 

//other instance members

//…

}

 

With the Singleton Design Pattern in place, the developer can easily access that single object instance without needing to worry about inadvertently creating multiple instances, and provides a global point of access to it.

VB – Dim mySingleton As SingletonSample = SingletonSample.Instance

C# – SingletonSample mySingleton = SingletonSample.Instance();

]]>