Singleton Design Pattern
Lazy Initialization
Static deinitialization-safe singleton.
Subclasses
Thread-safe Singeton