Study/Effective-Java

[item#22] 인터페이스는 타입을 정의하는 용도로만 사용해라

hongeeii 2023. 11. 30. 10:39
728x90
반응형
  • 상수를 정의하는 용도로 인터페이스를 사용하지 말 것!
    • 클래스 내부에서 사용할 상수는 내부 구현에 해당
    • 내부 구현을 클래스의 API로 노출하는 행위가 된다.
    • 클라이언트에게 혼란을 줌
  • 상수를 정의하는 방법
    • 특정 클래스나 인터페이스
    • 열거형
    • 인스턴스화 할 수 없는 유틸 클래스

image

image

위와 같은 패턴을 안티패턴이라고 함(namespace없이 사용하는..) -> 인터페이스의 원래의도를 오염시키기 때문에 권장 하지 않음

인터페이스의 가장 중요한 의도는 타입을 정의하는 것

상수를 정의하는 방법은 밑에와 같이 권장.

public final class PhysicalConstants {
    private PhysicalConstants() {
    }

    static final double AVOAGDROS_NUMBER = 6.022_140_421;
}
728x90
반응형