싱클톤?
객체의 인스턴스가 오직 1개만 생성되는 패턴.
싱글톤을 왜 사용?
고정된 메모리 영역을 얻으며 생성된 인스턴스를 계속 사용하기 때문에 메모리 낭비를 방지할 수 있으며, 생성된 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기가 쉽다고 한다.
사용 및 예제
package sec05.exam04;
public class Singleton {
// 싱글톤은 static instance를 가지고 있다.
private static Singleton singleton;
// 외부에서 인스턴스 생성을 못하도록 생성자를 private
private Singleton(){}
// static method로 인스턴스를 가져온다
// 최초에 instance가 null이면 객체를 생성해서 가지고 있는다.
static Singleton getInstance() {
if (singleton == null) singleton = new Singleton();
return singleton;
}
}
package sec05.exam04;
public class SingletonExample {
public static void main(String[] args) {
/*
Singleton obj1 = new Singleton();
Singleton obj2 = new singleton();
*/
Singleton obj1 = Singleton.getInstance();
Singleton obj2 = Singleton.getInstance();
if (obj1 == obj2) System.out.println("같은 싱글톤 객체입니다");
else System.out.println("다른 싱글톤 객체입니다");
}
}
출력
싱글싱글 싱글레이디 ~