Design: Singleton Pattern Implementation
Design and implement the Singleton pattern for a class in a low-level design context. Out of scope are specific language syntax details or integration with other design patterns.
Functional Requirements
FR1: Ensure only one instance of a class is created throughout the application lifecycle
FR2: Provide a global point of access to the instance
FR3: Support lazy initialization to create the instance only when needed
FR4: Be thread-safe to handle concurrent access in multi-threaded environments
Non-Functional Requirements
NFR1: Instance creation must be efficient with minimal synchronization overhead
NFR2: The pattern should not allow multiple instances even in complex scenarios like serialization or reflection
NFR3: The solution should be simple and easy to understand for maintainability