개발하는 두더지

[Effective Java 규칙53] 리플렉션 대신 인터페이스를 이용하라 본문

Java,Android

[Effective Java 규칙53] 리플렉션 대신 인터페이스를 이용하라

덜지 2018. 11. 1. 16:40

[Effective Java 규칙53] 리플렉션 대신 인터페이스를 이용하라

Effective Java 2/E 책과 구글링을 통해 내용을 정리하고 개인적인 견해가 포함된 글입니다.


리플렉션(reflection) 기능을 이용하면 메모리에 로드된 클래스의 생성자, 메서드, 필드 객체를 가져올 수 있다. 게다가 그 객체들을 이용하여

실제 생성자, 메서드, 필드를 조작할 수도 있다. 


클래스 브라우저, 객체 검사도구, 코드 분석 도구 등 리플렉션이 필요한 프로그램이 있지만 일반적으로 리플렉션이 필요한 케이스는 없으며

사용하면 코드도 지저분해지고 소스 코드가 컴파일 될 당시에 존재하지 않은 클래스를 이용하게되어 오류가 발생할 수도 있다.


리플렉션을 아주 제한적으로만 사용한다면 오버헤드는 피하면서 리플렉션의 다양한 장점들을 가질 수는 있다. 컴파일 시점에 존재하지 않는 클래스를 이용하는 경우 해당 클래스 객체를 참조하는데 사용할 수 있는 인터페이스나 상위 클래스는 컴파일 시점에 이미 가지고 있는 경우가 많기때문에 객체 생성은 리플렉션으로 하고 객체 참조는 인터페이스나 상위 클래스로 하면 된다.














Comments