본문 바로가기

emotional developer/detect-Java

java 타입형 interface.



클래스의 타입을 정의 할때.


인터페이스를 implement 해서, 해당 클래스가 내가 원하는 operation 의 종류인지 선언 하는 경우가 있다.

물론, 상속 구현으로 상위 부모 객체가 동일하면, 같은 처리를 할 수 있겠지만.

무거운 상속구조 보다는 좀 더 유연한 타입 비교가 아닐까 생각한다.


ex)

webwork 의 interceptor 의 기능 추가 시,

접근 action 이 처리 되어야 할 action 인지 여부를 타입 interface 로 판단 하는 케이스


거기에 추가로,

annotation 으로도 타입을 정의 할 수 있다.


retention 범위를 소스단위로 정의 하고.

별도의 구현이 없는 annotaion 을 정의 하면, interface 와 동일한 방식이 가능하다.

사실, annotation 선언 자체가 interface 와 동일하기 때문에, 당연히 비슷하게 구현 될 수 있는 방식이라 봐야 겠다.



결론,


class 타입 비교 시, interface 와 annotation 을 적절히 이용 하자.

개인적으로는 interface 방식 선호...




반응형