2009년 10월 6일 화요일

Singleton Pattern

Singleton Pattern?

▪ 지정한 클래스의 인스턴스가 '절대로' 1개밖에 존재하지 않는 것을 '보증'하고 싶을 때
▪ 인스턴스가 1개밖에 존재하지 않는 것을 플그램 상에서 표현하고 싶을 때
   ☞ 인스턴스가 한개 밖에 존재하지 않는 것을 보증하는 패턴


Singleton의 역할

Singleton 패턴에는 Singleton의 역할만이 존재합니다. Singleton 역할은 유일한 인스턴스를 얻기위한 static 메소드를 가지고 있습니다. 이 메소드는 언제나 동일한 인스턴스를 반환합니다.

 

예제프로그램

Singleton 클래스
: Singleton 클래스의 생성자는 private

펼쳐두기..


Main클래스

펼쳐두기..



왜 제한할 필요가 있는가?

제한을 한다는 것은 전제가 되는 조건을 늘린다는 의미
복수의 인스턴스가 존재하면 인스턴스들이 서로 영향을 미치고, 뜻하지 않은 버그가 발생할 가능성이 있습니다. 그러나 인스턴스가 1개밖에 없다는 보증이 있으면 그 전제조건 아래서 프로그래밍할 수 있습니다.


 

유일한 인스턴스는 언제 생성되는가?

예제 프로그램의 실행결과를 보면 'Start'라고 표시하고 나서 '인스턴스를 생성했습니다'라고 표시하고 있습니다. 프로그램의 실행 개시 후 최초로 getInstance 메소드를 호출했을 때 Singleton 클래스는 초기화 됩니다. 그리고 이때 static필드의 초기화가 이루어지고 유일한 인스턴스가 만들어집니다.

 

출처 : Java 언어로 배우는 디자인 패턴 입문(영진닷컴)

댓글 없음:

댓글 쓰기