ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 싱글톤(Singleton)
    공부/Java 2024. 1. 12. 20:52

    싱글톤 (Singleton)

     

    가끔 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다.

    단 하나만 생성된다고 해서 이 객체를 싱글톤이라고 한다.

     

    싱글톤을 만들기 위해 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다.

    ※ 생성자를 호출한 만큼 객체가 생성되기 때문

    생성자를 외부에서 호출할 수 없도록 하려면 생성자 앞에 private 접근 제한자를 붙여주면 된다.

    접근 제한자에 대해서는 나중에 더 자세하게 작성하겠다.

     

    예시

    public class ANewDream048 {
    	private static ANewDream048 singleton = new ANewDream048();
    
    	private ANewDream048() {}
    
    	static ANewDream048 getInstance() {
    		return singleton;
    	}
    }
    public class ANewDream048Test {
    	public static void main(String[] args) {
    		ANewDream048 obj1 = ANewDream048.getInstance();
    		ANewDream048 obj2 = ANewDream048.getInstance();
    
    		if (obj1 == obj2) {
    			System.out.println("같은 객체를 가르킨다.");
    		} else {
    			System.out.println("다른 객체를 다르킨다.");
    		}
    
    	}
    }

     

    결과

    같은 객체를 가르킨다.

     

    ANewDream048Test 클래스 파일에서 new 연산자로 객체를 만들고자 하면 에러가 발생한다.

    private 연산자를 사용했기 때문이다.

    이런 경우 외부에서 객체를 얻는 유일한 방법은 getInstance() 메서드를 호출하는 방법이다.

    getInstance() 메서드는 단 하나의 객체만 리턴하기 때문에, 동일한 객체를 참조하게 된다.

    '공부 > Java' 카테고리의 다른 글

    포함관계와 클래스 간의 관계  (0) 2024.02.01
    상속  (0) 2024.01.31
    각 타입의 기본값(default value)  (0) 2024.01.08
    변수의 초기화와 멤버변수의 초기화  (4) 2024.01.08
    객체 자신을 가리키는 참조변수 this  (4) 2024.01.04
Designed by Tistory.