본문 바로가기
개발 관련 정보/디자인패턴

6-1.Singleton 패턴

by MonoSoft 2023. 3. 22.
728x90
반응형

Singleton 패턴

 

singleton은 '단독 개체', '독신자'라는 뜻 말고도 

'정확히 하나의 요소만 갖는 집합' 등의 의미가 있다. 

singleton 패턴은 객체의 생성과 관련된 패턴으로서 특정 클래스의 객체가 

오직 한 개만 존재하도록 보장한다. 

즉 클래스의 객체를 하나로 제한한다. 프로그램에서 이런 개념이 필요할 때는 언제일까? 

프린터 드라이버의 예를 들어보자.

여러 컴퓨터에서 프린터 한 대를 공유하는 경우, 

한 대의 컴퓨터에서 프린트하고 있을 때 다른 컴퓨터가 프린트 명령을 내려도 

 

현재 프린트하는 작업을 마치고 그다음 프린트를 해야지

두 작업이 섞여 나오면 문제가 될 것이다.

즉 여러 클라이언트(컴퓨터)가 동일 객체(공유 프린터)를 사용하지만

한 개의 객체(프린트 명령을 받은 출력물)가 유일하도록 상위 객체가 보장하지 못한다면 

singleton 패턴을 적용해야 한다. 

 

이처럼 동일한 자원이나 데이터를 처리하는 객체가 불필요하게 

여러 개 만들어질 필요가 없는 경우에 주로 사용한다.

 

 

왜? 너무 많은 요리사가 스튜를 망치고

절대적으로 하나만

 

 

만드는 방법

'정적'키워드를 완전히 이해

-생성자에 액세스 할 수 없습니다

-클래스의 객체를 정적 멤버 변수로 선언

물론이 개체에 액세스 할 수 없습니다

-클래스 내에서 클래스 자체 인스턴스 인스턴스화

-객체에 접근 할 수있는 정적 메소드 제공

 

static의 이해

 

static 선언 시 같은 클래스속에서 인스턴스화 안해도 호출 가능

 

 

static 선언된건 최초 단1번 메인보다 먼저 호출한다.

 

 

728x90
반응형

'개발 관련 정보 > 디자인패턴' 카테고리의 다른 글

7. Immutable 패턴 / Flyweight 패턴  (0) 2023.03.27
6-2.Instance 패턴  (0) 2023.03.24
5.facade 패턴  (0) 2023.03.21
4-2.Prototype 패턴  (0) 2023.03.17
4-1.RMI란  (1) 2023.03.16

댓글