반응형
이펙티브 자바(Effective java) 를 읽고 정리한 글입니다.
정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어서 쓰려고 설계하는 것이 아니다.
그렇기 때문에 인스턴스화가 불가하도록 막아야 한다.
인스턴스화 방지
컴파일러는 자동으로 기본 생성자를 만든다.
우리는 유틸리티 클래스가 의도치 않게 인스턴스화가 가능하도록 두지 말아야 한다.
그러니 prvate 생성자를 추가하여 클래스의 인스턴스화를 막자.
public class UtilityClass {
private UtilityClass() {
throw new AssertionError ();
}
// ...
}
위와 같이 생성자 내부에서 Error 를 던지도록 하면, 클래스 내부에서 실수로 생성자를 호출하는 일도 막아준다.
정리
정적 멤버만 가지는 유틸리티 클래스를 구현할 때는 private 생성자를 이용하여 인스턴스화를 막자.
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
이펙티브 자바 - 아이템 6. 불필요한 객체 생성을 피하라 (0) | 2024.08.20 |
---|---|
이펙티브 자바 - 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2024.08.20 |
이펙티브 자바 - 아이템3. private 생성자나 열거 타입으로 싱글턴임을 보증하라. (2) | 2024.08.14 |
이펙티브 자바 - 아이템2. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2024.08.13 |
이펙티브 자바 - 아이템1. 생성자 대신 정적 팩터리 메서드를 고려하라. (0) | 2024.08.12 |