From CDOT Wiki
Revision as of 19:17, 8 March 2007 by Yshen6 (talk | contribs) (Sample Code)
Jump to: navigation, search


Singleton pattern Ensure a class only has one instance, and provide a global point of access to it. This is useful when exactly one object is needed to coordinate actions across the system.


  • Singleton pattern is implemented by creating a class with a method that creates a new instance of the object if one does not exist.
  • If an instance already exists, it simply returns a reference to that object.
  • To make sure that the object cannot be instantiated any other way, the constructor is made either private or protected.

UML Diagram

Singleton UML.png

Sample Code

class Singleton
  private static Singleton instance;

  // Note: Constructor is 'protected' 
  protected Singleton() 

  public static Singleton Instance()
    // Use 'Lazy initialization' 
    if (instance == null)
      instance = new Singleton();

    return instance;