싱글턴 패턴

김대익·2022년 3월 29일
0

싱글턴은 프로세스가 실행 중에
오직 하나의 객체만 생성되도록 강제하는 패턴이다

class Singleton
{
  static instance;
  constructor()
  {
    if (!Singleton.instance)
    {
        Singleton.instance = this;
    }
    return Singleton.instance;
  }
}


let s1 = new Singleton();
let s2 = new Singleton();

if (s1 === s2)
{
  console.log('they are same, Singleton!');
}
else
{
  console.log('they are not same');
}

위 코드가 메모리에서 실행되는 모습을 보면


먼저 static 변수인 instance를 선언하고

let s1 = new Singleton();에서 Singleton 객체가 생성되면서
constructor가 실행된다.


Singleton.instance가 null을 가리키고 있으므로

Singleton.instance = this;가 실행되면서
instance는 this인 Singleton객체를 가리키게 된다.

이후 다시 new Singleton()을 하더라도
Singleton.instance가 null이 아니므로 기존에 가리키던 객체를 가리키게 된다.

0개의 댓글