[Item4] 인스턴스화를 막으려거든 private 생성자를 사용하라
_아직 Item4까지 밖에 보지 않았지만 정말 개발을 하면서 신경쓰지 않았던 부분에 대해서 다시한번 반성하고 배워가게 되는 책인것 같습니다.
Item4 같은 경우는 간단하게 보고 넘어가도 될듯 하여 짧게 포스팅을 하려고 합니다 .
public class Utility {
// 기본생성자를 막기 위해 private 사용
private Utility () {
// 기본생성자를 통한 객체 생성 방지를 위해 throw 발생
throw new Exception();
}
}
자동으로 생성된 생성자가 아닌 명시적으로 만든 생성자가 private이기 때문에 클래스의 외부에서는 접근 불가능합니다.
따라서 어떤 환경에서도 클래스가 인스턴스화 되는것을 막을 수 있다.
throw new Exception처럼 익셉션을 발생시켜 직관적으로 명시해 준다.( 적절한 주석 OK)
주의해야 할점은 상속을 해야하는 상황에서는 사용하면 안됩니다.
모든생성자는 명시적이던지 묵시적으로 상위 클래스의 생성자를 호출하게 되는데, 상속받은 클래스가 private으로 선언했으니 하위클래스가 상위 클래스의 생성자에 접근하는 길이 막혀버립니다.
Item4는 간단하게 마무리 하겠습니다
Author And Source
이 문제에 관하여([Item4] 인스턴스화를 막으려거든 private 생성자를 사용하라), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yundleyundle/Item4-인스턴스화를-막으려거든-private-생성자를-사용하라저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)