객체를 하나만 만드는 패턴
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 |