Singleton
Intent
ensure a class only ever has one instance, and provide a global point of access to it
Applicability
- when there must be exactly one instance of a class
- when sole instance should be extensible by subclassing
Consequences
- reduced name space pollution
Implementation
- C++/Java: declare constructor as protected to guard against multiple singleton instances