티스토리 뷰

이펙티브 자바 Effective Java 2/E
국내도서
저자 : 조슈아 블로크(Joshua Bloch) / 이병준역
출판 : 인사이트 2014.09.01
상세보기


만일 적당한 인터페이스 자료형이 있다면 인자나 반환값, 변수 그리고 필드의 자료형은 클래스 대신 인터페이스로 선언하자. 아래와 같은 타이핑하는 습관을 들이는 것이 좋다.

// 인터페이스를 자료형으로 사용하고 있는 바람직한 예제
List<Subscriber> subscribers = new Vector<Subscriber>();
// 클래스를 자료형으로 사용하는 나쁜 예제
Vector<Subscriber> subscribers = new Vector<Subscriber>();

인터페이스를 자료형으로 쓰는 습관을 들이면 프로그램은 더욱 유연해진다. 가령 성능 개선, 기능 추가 등의 이유로 객체의 실제 구현을 다른 것으로 바꿀 때 유연하게 바꿔치기할 수가 있다.

물론 적당한 인터페이스가 없는 경우에는 객체를 클래스로 참조하는 것이 당연하다.

댓글