티스토리 뷰
생성자에 접근 제어자를 사용함으로써 인스턴스의 생성을 제한할 수 있다.
생성자의 접근 제어자를 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