본문 바로가기
이펙티브 자바

아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라

by 아토로 2022. 5. 17.
  • 정적 메서드만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 클래스가 아니다.
  • 추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다.
  • private 생성자를 추가하면 클래스의 인스턴스화를 막을 수 있다.
  • 생성자에 주석으로 인스턴스화 불가한 이유를 설명하는 것이 좋다.
  • 상속을 방지할 때도 같은 방법을 사용할 수 있다.
public class UtilityClass {
    // 기본 생성자가 만들어지는 것을 막는다(인스턴스화 방지용)
    private UtilityClass() {
        throw new AssertionError();
    }
}

댓글