인터페이스를 구현하는 클래스를 만들게 되면, 그 인터페이스는 해당 클래스의 객체를 참조할 수 있는 자료형 역할을 하게 된다. 인터페이스를 구현해 클래스를 만든다는 것은, 해당 클래스의 객체로 어떤 일을 할 수 있는지 클라이언트에게 알리는 행위이다.


 안좋은 예로 소위 상수 인터페이스 라는 것이 있다. 인터페이스에 메서드가 없고 static final 필드만 있다.

위의 예시 인터페이스는 인터페이스를 잘 못 사용한 것이다. 클래스가 어떤 상수를 어떻게 사용하느냐 하는 것은 구현 세부사항인데 인터페이스에 이러한 구현 세부사항을 정의하게 되면, 구현 세부사항이 API로 노출되기 때문이다.

상수를 API일부로 공개하고 싶을 때는 더 좋은 방법이 있다. 해당 상수가 이미 존재하는 클래스에 강하게 연결되어 있을 때는 해당 클래스에 상수를 정의하면 된다.

요약

인터페이스는 자료형을 정의할 때만 사용해야 한다. 특정 상수를 API의 잉ㄹ부로 공개할 목적으로는 적절치 않다.



+ Recent posts