intent

  • ensure only 1 instance of class is created with global point to access

use cases

  • logger
  • configuration
  • accessing resources in shared mode

implementation

class Singleton {
  private static instance = new Singleton();
 
  private constructor() {}
 
  static getInstance(): Singleton {
    return this.instance;
  }
 
  doSomething() {
    // do something here
  }
}

todo thread-safe implementation in typescript