싱글톤 패턴은 클래스를 딱 1번만 복사할 수 있는 패턴이다.
일반적으로 클래스는 무한대로 인스턴스(복사본)를 생성할 수 있지만 한 번만 인스턴스를 생성했다 삭제해야하는 상황이 존재한다. 대표적으로 아래와 같은 케이스이다.
만일, 보안검색 클래스가 인증 대상자의 인스턴스를 무한대로 찍어낼 수 있다면, 인증수단을 여러 개 복사해서 동일한 보안시설에서 사용할 수 있다. 그리고 보안 프로그램은 이를 통제하지 못한다. 단 하나의 인스턴스만 생성하도록 설계되지 않았기 때문이다
│싱글톤
싱글톤 패턴은 커맨드 다음으로 간단하다. 아래 다이어그램에서 가장 핵심적인 부분은 getInstance()메서드이다. getInstance메서드는 프로그램 어느 곳에서든 접근할 수 있는 만능키와 같다.
싱글톤의 핵심코드는 대개 아래와 같다.(자바스크립트)
class...(생략)
construct(){
//싱글톤 클래스의 인스턴스가 있는지 확인
if(Singleton._instance){
return Singleton._instance;
}
//해당객체를 싱글톤 인스턴스로 지정
Singleton._instance = this;
}
//어디에서든 접근가능한 만능키 생성
static getInstance(){
if(!Singleton._instance){
Singleton._instance = new Singleton();
}
return Singleton._instance;
}
...메서드 입력
1개의 인스턴스만 생성할 수 있는 싱글톤의 특성상, 프로그램 히스토리 관리자, 파일선택 대화상자, 관리자 및 사용자 설정, 레지스트리 설정과 같은 컴포넌트에 사용할 수 있다.
'코드 스터디' 카테고리의 다른 글
GoF디자인패턴「구조편」 (0) | 2020.12.14 |
---|---|
GoF디자인패턴「생성편」 (0) | 2020.12.11 |
커맨드 패턴 (0) | 2020.12.09 |
탬플릿 매서드, STRATEGY 패턴 [행위] (2) | 2020.12.08 |
퍼사드 || 미디에이터 패턴 (0) | 2020.12.07 |
댓글