본문 바로가기

디자인 패턴/Java언어로 배우는 디자인패턴 입문 책 정리

Singleton 패턴

객체를 하나만 만드는 패턴


1. 코드

TicketMaker : 티켓을 만드는 싱글턴 클래스

public class TicketMaker {
	private static TicketMaker tichetMaker = new TicketMaker();
	private int ticket = 1;
	
	private TicketMaker() {
	}
	
	public static TicketMaker getInstance() {
		return tichetMaker;
	}
	
	public synchronized int getTichek() {
		return ticket++;
	}
}

 

Main : test 클래스

public class Main {

	public static void main(String[] args) {
		TicketMaker tichekMaker = TicketMaker.getInstance();
		int a = tichekMaker.getTichek();
		int b = tichekMaker.getTichek();
		
		System.out.print(a + " " + b);
	}
}

2. 특징

- 생성자를 private으로 만들어 외부에서 객체를 만드는걸 막는다.

- static 변수로 하나의 객체를 만들고 static 메소드로 해당 객체를 가져오는 구조

- thread safe하지 않는 것 주의

    - thread safe하고 싶은 부분은 synchronized 키워드 활용

 

3. 해당 패턴을 고려해볼만한 상황

- 유일한 객체를 표현하고 싶을 때

 

'디자인 패턴 > Java언어로 배우는 디자인패턴 입문 책 정리' 카테고리의 다른 글

Builder 패턴  (0) 2021.01.09
Prototpye 패턴  (0) 2021.01.03
Factory Method 패턴  (410) 2020.12.31
Template Method 패턴  (1) 2020.12.27
Adapter 패턴  (0) 2020.12.27