- 정적 메서드만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 클래스가 아니다.
- 추상 클래스로 만드는 것으로는 인스턴스화를 막을 수 없다.
- private 생성자를 추가하면 클래스의 인스턴스화를 막을 수 있다.
- 생성자에 주석으로 인스턴스화 불가한 이유를 설명하는 것이 좋다.
- 상속을 방지할 때도 같은 방법을 사용할 수 있다.
public class UtilityClass {
// 기본 생성자가 만들어지는 것을 막는다(인스턴스화 방지용)
private UtilityClass() {
throw new AssertionError();
}
}
'이펙티브 자바' 카테고리의 다른 글
아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2022.07.17 |
---|---|
아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라 (0) | 2022.05.16 |
아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라 (0) | 2022.04.21 |
아이템 1. 생성자 대신 정적 팩터리 메서드를 고려하라 (0) | 2022.04.05 |
아이템 14. Comparable을 구현할지 고려하라 (0) | 2022.03.09 |
댓글