본문 바로가기

싱글톤 패턴

by Recstasy 2020. 12. 10.

 싱글톤 패턴은 클래스를 딱 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

댓글

최신글 전체

이미지
제목
글쓴이
등록일