아이템 37. 자료형을 정의할 때 표식 인터페이스를 사용하라.
37. 자료형을 정의할 때 표식 인터페이스를 사용하라.
표식 인터페이스(marker interface) : 아무 메서드도 선언하지 않은 인터페이스(ex> ```Serializable``)
interface MarkerInterface{}
표식 인터페이스(marker interface)의 장점
- 표식 인터페이스가 붙은 클래스가 존재하면, 클래스가 만드는 객체들이 구현하는 자료형으로 표식 인터페이스가 쓸일 수 있다.
- 표식 인터페이스는 자료형이다.
- 표식 인터페이스는 자료형이기 때문에 컴파일 시점에 오류를 미리 발견할 수 있다.
- 적용 범위(scope)를 아주 세밀하게 지정 할 수 있다.
- 인터페이스의 계승(extends)을 통해서 특정 타입을 적용범위로 설정할 수 있다.
표식 어노테이션의 장점
- 풍부한 표현으로 이란 확장성
- 기본값을 가지는 어노테이션 자료형 요소(annotation type element)를 추가할 수 있다.
- 더 큰 어노테이션 기능(facility)의 일부
표식 인터페이스 vs 표식 어노테이션
- 새로운 메서드가 없는 자료형을 정의하고자 한다면 표식 인터페이스를 이용하자.
- 타입(클래스나 인터페 이스) 이외의 프로그램 요소에 적용되어야 하는 표식은 어노테이션으로 만들자.
자료형이 필요하다면 인터페이스를 기본적으로 사용을 고민하라.