#19 타입을 정의할 때만 인터페이스를 이용하자
인터페이스는 해당 인터페이스를 구현하는 클래스의 인스턴스를 참조하는데 이용될 수 있는 타입을 정의할 수 있습니다.
따라서 인터페이스는 클래스의 인스턴스가 할 수 있는 일을 나타내야 합니다.
아래 코드는 타입을 정의하지 않고, 상수 값만 가지는 상수 인터페이스입니다.
기본적으로 클래스가 내부적으로 이용하는 상수들은 해당 클래스의 상세한 구현에 속합니다.
따라서 아래와 같이 상수 인터페이스를 구현하면 상세한 구현들이 외부 API로 노출되게 됩니다.
만약 상수를 외부에 제공하고 아래와 같이 인스턴스를 생성할 수 없는 상수 클래스를 통해 제공할 수 있습니다.
결론은 인터페이스는 타입을 정의할 때만 이용하고, 상수를 외부에 제공하기 위해서는 이용하면 안 됩니다.