Language/Java
[자바_문법] 디자인패턴_싱글톤(Singleton)
simDev1234
2022. 3. 15. 14:11
[ Single-ton 의 원리]
- 프로그램이 시작되었을 때 클래스변수, 클래스메서드가 메서드영역(클래스영역)에 적재되는 것을 응용
- 단순히 기능만 제공하는 서비스 객체(클래스)의 인스턴스를 반복적으로 생성해야할 때,
메모리의 불필요한 사용을 줄이고자 싱글톤을 사용한다.
<일상생활을 예로 이해하기 - 못 박기>
10번 못을 박기 위해, 1) 철물점에 가서 망치를 산다 -> 2) 못을 박는다. 2) 철물점에 가서 망치를 산다 -> 2) 못을 박는다. 3) 철물점에 가서.... x 10 |
-> | 10번 못을 박기 위해, 1) 철물점에 가서 망치를 산다. -> 2) 못을 박는다. 1) 이미 사둔 망치를 또 쓰자 -> 2) 못을 박는다. ....... x10 |
▼ 그림으로 표현한 싱글톤 원리

[예제_망치로 못을 박기]
package myutil;
public class MySingleTonTest {
public static void main(String[] args) {
int times = 10;
for(int i = 0; i < times; i++) {
Hammer hammer = Hammer.getInstance();
hammer.nail();
}
}
}
class Hammer{
public static Hammer single;
protected Hammer(){}
public static Hammer getInstance() {
if(single == null) {
single = new Hammer();
}
return single;
}
public void nail() {
System.out.println("못!");
}
}
>> 결과
못!
못!
못!
못!
못!
못!
못!
못!
못!
못!
[ 자세한 내용 참조 링크 ]
https://velog.io/@kyle/%EC%9E%90%EB%B0%94-%EC%8B%B1%EA%B8%80%ED%86%A4-%ED%8C%A8%ED%84%B4-Singleton-Pattern
[참고]
국비과정 수업 내용참조