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