Singleton creational design pattern restricts the instantiation of a class to a single object.
class Singleton {
constructor() {
if (!!Singleton.instance) {
return Singleton.instance;
}
Singleton.instance = this;
}
}
const i = new Singleton();
const j = new Singleton();
console.log(i); // Singleton {}
console.log(j); // Singleton {}
console.log(i === j); // true
- Singletons represent a global state and may reduces testability.