brunch

You can make anything
by writing

C.S.Lewis

by 이승현 Apr 03. 2018

클래스와 인터페이스

#19 타입을 정의할 때만 인터페이스를 이용하자

Effective Java - 클래스와 인터페이스


#19 타입을 정의할 때만 인터페이스를 이용하자


인터페이스는 해당 인터페이스를 구현하는 클래스의 인스턴스를 참조하는데 이용될 수 있는 타입을 정의할 수 있습니다.

따라서 인터페이스는 클래스의 인스턴스가 할 수 있는 일을 나타내야 합니다.


아래 코드는 타입을 정의하지 않고, 상수 값만 가지는 상수 인터페이스입니다.


#01 상수 인터페이스 안티패턴


기본적으로 클래스가 내부적으로 이용하는 상수들은 해당 클래스의 상세한 구현에 속합니다.

따라서 아래와 같이 상수 인터페이스를 구현하면 상세한 구현들이 외부 API로 노출되게 됩니다.


#02 상수 인터페이스 구현




만약 상수를 외부에 제공하고  아래와 같이 인스턴스를 생성할 수 없는 상수 클래스를 통해 제공할 수 있습니다.


#03 상수 클래스


#04 상수 클래스 이용


결론은 인터페이스는 타입을 정의할 때만 이용하고, 상수를 외부에 제공하기 위해서는 이용하면 안 됩니다.




매거진의 이전글 클래스와 인터페이스
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari