인터페이스의 역할을 2가지 측면에서 볼 수 있다.
그 자체로 타입 역할을 하며, 인터페이스를 통해 구현 클래스의 인스턴스를 다룰 수 있도록 한다.
→ 코드의 유연성을 매우 높인다.
이번 챕터에서는 인터페이스를 ‘타입으로서의 역할’로 바라보고, 이에 맞지 않는 상수 인터페이스 안티패턴을 소개한다.
[문제점]
상수 인터페이스 안티패턴 - 사용금지!
public interface PhysicalConstants {
static final double PI = 3.141592
}
상수들은 보통 클래스의 내부 구현에 사용되는 값들이다.
하지만 인터페이스로 이러한 상수들을 정의하면, 내부에서 사용되어야 할 상수들이 외부로 노출되는 경우가 발생한다. (캡슐화 위반) 또한 인터페이스를 구현하는 클래스는 관련이 없는 상수들까지도 모두 상속받게 된다. (불필요한 의존성)