Singleton

Hi_na·2022년 12월 5일
0

Java

목록 보기
10/11
post-thumbnail

Singleton

: 하나의 instance를 생성하는 design pattern

📌 사용하는 이유?

  1. static으로 고정된 메모리 영역에 한 개의 instace를 생성하기 때문에 메모리를 절약할 수 있다.
  2. singleton의 instance는 '전역'이므로, 다른 클래스의 instace와 데이터를 공유할 수 있다.

  1. 싱글톤을 만들려면, 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.
    => 생성자 앞에 private 접근 제한자를 붙인다.
  2. 정적 필드를 선언하고, 자신의 객체를 생성해 초기화한다.
  3. 정적 필드도 private를 붙여 외부에서 필드값을 변경하지 못하도록 막는다.
  4. 외부에서 호출할 수 있는 정적 메소드인 getInstance( )를 선언하고, 자신의 객체를 리턴해준다.
public class Singleton {

	private static Singleton singleton;
	
	static {
		singleton = new Singleton();
	} // static initializer
	
	private Singleton() {
		;;
	} // default constructor
	
	static Singleton getInstance() {
		return Singleton.singleton;
	} // getInstance
	
} // end class

⬇️⬇️⬇️

public class SingletonEx {

	public static void main(String[] args) {
		
		Singleton obj1 = Singleton.getInstance();
		Singleton obj2 = Singleton.getInstance();
		
		System.out.println(obj1);
		System.out.println(obj2);
		
		if(obj1 == obj2) {
			System.out.println("같은 Singleton 객체 입니다.");
		} else {
			System.out.println("다른 Singleton 객체 입니다.");
		} // if-else
	} // main 

} // end class

0개의 댓글