Singleton

 Rate It (5)

Singleton 

The Singleton Design Pattern insures that only a single instance of a given object can exist.

If 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.

VB - Dim mySingleton As SingletonSample = SingletonSample.Instance

C# - SingletonSample mySingleton = SingletonSample.Instance;

 

 

Revision number 4, Saturday, February 16, 2008 3:47:03 PM by
This is not the most up to date version of this article. The most recent version can be found here.

Comments

Good Article. Now I got basic idea about singleton pattern. Thanks

cool!!!, thanks for the info, really helps me to understand SINGLETON.

Is this thread safe?

since the singleton is created via a static initializer, its creation is thread-safe.

sorry, have you looked at this, before writing this article? http://msdn.microsoft.com/en-us/library/ms954629.aspx sealed class Singleton { private Singleton() {} public static readonly Singleton Instance = new Singleton(); } i think it's better way to implement singleton in C#

Shortcuts

Table of Contents

Top Wiki Contributors

(last 30 days)

  1. ssg31415926 (7)
  2. vik20000in (2)
  3. tmorton (1)
  4. sambeetpatra (1)
  5. mbanavige (1)
  6. Jos Branders (1)
  7. anonymouswrites (1)

Advertise Here

Microsoft Communities
Page view counter