Первый паттерн, который мы рассмотрим называется Singleton. Он очень популярен и прост как в реализации так и в понимании. Singleton используется в случае когда нужно иметь максимум один экземпляр определенного объекта в системе.
Один из вариантов реализации:
class Counter { count = 0 constructor() { if (typeof Counter.instance === 'object') { return Counter.instance } Counter.instance = this return Counter.instance } getCounter() { return this.count } incCounter() { this.count++ } }
Имея данный конструктор можно создавать объекты класса Counter в любом месте программы. Все его экземпляры будут ссылаться на один и тот же объект.
let a = new Counter() let b = new Counter() a.incCounter() b.incCounter() console.log(a === b) // true console.log(a.getCounter() === b.getCounter()) // true (2)
В следующей статье рассмотрим паттерн под названием Factory.