[04] 인스턴스화를 막으려거든 private 생성자를 사용하라
핵심 내용
인스턴스화 되길 원하지 않고, 인스턴스화 할 의도도 없는데 만들어진 클래스는 Util 성 클래스일 것이다.(이거 말고 생각이 안난다. 없을 거다) 모든 메소드가 static 으로 선언되어 있는 클래스이다. 즉, 클래스를 생성하지 않아도 행동을 요청할 수 있는 것이다.
따라서 생성할 필요가 없다. 그런데 오픈소스들도 종종 기본 생성자가 그대로 노출되어 있어서 생성의 위험이 있는 경우가 있다고 저자는 말하고 있다.
이번 아이템의 핵심 내용은 만들 계획이 없고, 만들어질 필요도 없는 클래스는 private 생성자로 명시적으로 외부에서의 생성을 막으라는 것이다.
추상 클래스로 선언하면 생성을 막을 수 있는거 아닌가?
하위 클래스를 만들어서 이를 상속하고 하위 클래스를 생성하면 생성이 되어버린다.
Last updated