728x90
반응형
Singleton 싱글톤
객체가 유일하게 1개만 존재해야할 때 사용하는 패턴으로, 하나의 인스턴스만 생성하여 공유해서 사용합니다. 그래서 메모리의 낭비를 줄일 수 있습니다. 스프링에서는 @Bean을 싱글톤으로 관리합니다.
Singleton Pattern 구현
package Java;
public class Singleton {
//인스턴스를 하나만 사용하기 위해 인스턴스 미리 생성
private static Singleton singleton = new Singleton();
//인스턴스를 생성하지 못하게 생성자를 private로 막는다.
private Singleton(){}
public static Singleton getInstance(){
//기존에 인스턴스가 생성되지 않은 상태라면 생성하기
if(singleton == null){
singleton = new Singleton();
}
//기존에 인스턴스가 생성되어 있다면 반환하기
return singleton;
}
}
Singleton Pattern 사용과 확인
package Java;
public class UseSingleton {
public static void main(String[] args) {
//static 메서드는 클래스이름에서 .으로 접근해서 사용
Singleton instance = Singleton.getInstance();
Singleton instance1 = Singleton.getInstance();
System.out.println("first instance = " + instance);
System.out.println("second instance = " + instance1);
System.out.println(instance.equals(instance1));
}
}
<결과 값>
first instance = Java.Singleton@7a81197d
second instance = Java.Singleton@7a81197d
true
Singleton Class를 두번 가져왔는데 가져온 두번 모두 같은 인스턴스 값을 갖고 있다는 것을 확인 할 수 있었습니다.
728x90
반응형
'JAVA' 카테고리의 다른 글
[Java] Decorator Pattern (0) | 2022.07.28 |
---|---|
[Java] Template Method Pattern (0) | 2022.07.28 |
[Java] 자바 메서드가 생성되는 원리 - 가상 함수 기법 (0) | 2022.07.28 |
[Java] 메모리 관리 - 스택, 힙, Garbage Collection (0) | 2022.07.21 |
[Java] 제네릭 타입 (0) | 2022.07.20 |