Skip to content
uencoder

Singleton Pattern

The singleton pattern ensures a class has only one instance and provides a global access point, used for shared state or resource management.

Purpose

Control instance creation for global resources such as configuration, logging, and connection pools.

Mechanism

Private constructor + static instance + global access method. Thread safety requires double-checked locking or static initialization. Controversial: introduces global state, hides dependencies, hard to test. Prefer dependency injection over singletons.

Use cases

  • Global state management
  • Resource sharing
  • Pattern design

Related terms

References