인스턴스화를 막는 이유
java.lang.Math
,java.util.Arrays
처럼 기본 타입 값이나 관련된 메서드를 모아 놓을 때java.util.Collections
처럼 특정 인터페이스를 구현하는 객체를 생성해주는 정적 메서드를 모아 놓을 때- final 클래스와 관련된 메서드를 모아 놓을 때
인스턴스화를 막는 방법
public class UtilClass {
//인스턴스화 방지용
private UtilClass() {
throw new AssertionError();
}
}
추상클래스는 하위 클래스를 만들어 인스턴스화 한다는 방법이 있으므로 private 생성자를 추가합니다.
이때 혹시라도 클래스 안에서 생성자를 호출하지 않도록 처리를 해줍니다.
이 방법은 상속을 불가능하게 하는 효과도 있습니다.
반응형
'스터디 > 이펙티브 자바' 카테고리의 다른 글
[Effective Java] Item 6. 불필요한 객체 생성을 피하라 (0) | 2022.05.15 |
---|---|
[Effective Java] Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용 (0) | 2022.05.14 |
[Effective Java] Item 3. private 생성자나 Enum타입으로 싱글턴임을 보증하라 (3) | 2022.05.13 |
[Effective Java] Item 2. 생성자에 매개변수가 많다면 빌더 (0) | 2022.05.11 |
[Effective Java] Item 1. 생성자 대신 정적 팩토리 메서드를 고려하라 (0) | 2022.05.11 |