책/이펙티브 자바 3e

아이템 22) 인터페이스는 타입을 정의하는 용도로만 사용하라

jhg0406 2022. 3. 3. 14:29

아이템22) 인터페이스는 타입을 정의하는 용도로만 사용하라

  • 인터페이스는 자신을 구현한 클래스의 인스턴스를 참조할 수 있는 타입 역할을 함
  • 즉, 인터페이스로 무엇을 할 수 있는지를 클라이언트에 얘기해주는 것
  • 인터페이스를 상수 공개용 수단으로 사용하지 말자

상수 인터페이스 안티패턴 - 사용금지!

public interface Constants {
    static final int MAX = 9;
    static final int MIN = 0;
}

상수 유틸리티 클래스 - 이걸 사용하자

public class Constants {
    private Constants() {} //인스턴스화 방지
    
    static final int MAX = 9;
    static final int MIN = 0;
}