티스토리 뷰

java

싱글톤패턴

ssffwert 2022. 4. 26. 01:10

생성자에 접근 제어자를 사용함으로써 인스턴스의 생성을 제한할 수 있다.
생성자의 접근 제어자를 private으로 지정하면, 외부에서 생성자에 접근할 수 없으므로, 인스턴스를 생성할 수 없게 된다.
(그래도 클래스 내부에서는 인스턴스를 생성할 수 있다.)

class Singleton { 
    private Singleton() { 
    	... 
    } 
    ... 
}



대신에 인스턴스를 생성해서 반환해주는 public 메서드를 제공함으로써, 외부에서 이 클래스의 인스턴스를 사용하도록 할 수 있다.
이 메서드는 public인 동시에 static이어야 한다.

class Singleton { 
    // getInstance()에서 사용될 수 있도록 인스턴스가 미리 생성되어야 하므로, static이어야 한다. 
    private static Singleton s = new Singleton(); 

    private Singleton() { 
    	... 
    } 

    // 인스턴스를 생성하지 않고도 호출할 수 있어야 하므로, static이어야 한다. 
    public static Singleton getInstance() { 
    	return s; 
    } 
    
    ... 
}


이처럼 생성자를 통해 직접 인스턴스를 생성하지 못하게 하고 public메서드를 통해 인스턴스에 접근하게 함으로써,
사용할 수 있는 인스턴스의 개수를 제한할 수 있다.

 

 

# 참고 자료: [Java의 정석 3rd Edition​(남궁 성)]

'java' 카테고리의 다른 글

네트워킹(Networking)  (0) 2022.05.08
예외처리(exception handling)  (0) 2022.05.01
메모리는 어떻게 할당하는가  (0) 2022.01.02
메이븐이란 무엇인가  (0) 2022.01.02
자바 키/값 확인 출력 코드  (0) 2021.02.08
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday