# Singleton Design Pattern
- Singleton pattern is a design pattern which restricts a class to instantiate its multiple objects.
- Singleton classes are used for logging, driver objects, caching and thread pool, database connections.

# Implementation methods
- Classic Implementation
- Make getInstance() synchronized
- Eager Instantiation
- Double Checked Locking