IT/Programming / / 2023. 4. 28. 09:21

<Effective Java> RULE 4 객체 생성을 막을 때는 private 생성자를 사용하라

반응형

 

객체를 만들 수 없도록 하려고 클래스를 abstract로 선언해 봤자 소용이 없다.

private 생성자를 클래스에 넣어서 생성을 방지해야 한다.

// 객체를 생성할 수 없는 유틸리티 클래스
public class UtilityClass{
    // 기본 생성자가 자동 생성되지 못하게 하여 객체 생성 방지
    private UtilityClass(){
        throw new AssertionError();
    }
    
    ...
}
 

명시적으로 정의된 생성자가 private이므로 클래스 외부에서는 사용할 수 없다.

AssertionError는 반드시 필요한 건 아니지만 클래스 안에서 실수로 생성자를 호출하면 바로 알 수 있게 하기 위한 것이다.

주석을 같이 달아주어 명시적으로 생성자를 생성할 수 없다는것을 밝히면 좋다.

또한 이렇게 하면 하위 클래스도 만들 수 없다.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유