Difference between revisions of "Singleton"
Line 10: | Line 10: | ||
==UML Diagram== | ==UML Diagram== | ||
[[Image:Singleton_UML.png]] | [[Image: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; | ||
+ | } | ||
+ | } |
Revision as of 18:16, 8 March 2007
Introduction
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.
Implementation
- 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
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; }
}