생성 패턴중 싱글톤 패턴에 대해서
소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.
위키에 정의된 싱글턴 패턴이다.
우리의 역사와 비교해 보면 한반도가 하나의 이름으로 불리운 고려, 조선 시대에는 한반도 영토를 두고 내부에서 전쟁을 벌인적은 없다.
한반도에 하나의 나라가 존재하면 영토와 관련한 문제가 발생하지 않지만 삼국시대와 같이 여러나라가 한반도에 존재한다면 반드시 전쟁이 뒤따른다는것을 역사적 사실을 통해 알 수 있다.
하나의 영토에 하나의 나라가 존재하면 영토 문제는 발생하지 않는다.
우리가 가지고 있는 스마트폰에는 백라이트 조절, 음량 조절, 와이파이 연결등의 수많은 설정값이 있다.
또한 앱스토어에서 인스타그램, 페이스북, 스냅챗과 같은 앱들을 설치하여 사용을 하고 있다.
하나의 앱에서 음량조절을 해보면 다른 앱을 사용할때에도 변경한 음량 그대로 사용되는것을 볼수 있다.
https://gist.github.com/kimmellj/92d8c231de8d4d682deb
위의 이미지는 싱글톤 패턴의 예제 코드이다.
코드 하단에 있는
console.log( "Are the two instances the same? " + (singleA === singleB) );
이 부분이 싱글톤을 잘 설명하고 있는 부분이다.
한번 생성된 인스턴스는 코드가 실행되는 동안 하나만 존재하는것을 볼 수 있다.