본문 바로가기
공부/이펙티브자바

64. 객체는 인터페이스를 사용해 참조하라

by JERO__ 2022. 3. 17.

“적합한 인터페이스”가 있다면, 매개변수뿐 아니라 반환값, 변수, 필드를 전부 인터페이스 타입으로 선언하라.

  • 객체의 실제 클래스를 사용해야 할 상황 : ‘오직’ 생성자로 생성할 때 뿐
Set<Son> sonSet = new LinkedHashSet<>();               // 좋은 예
LinkedHashSet<Son> sonSet = new LinkedHashSet<>();     // 안좋은 예
  • 인터페이스를 타입으로 사용하는 습관을 길러두면 프로그램이 훨씬 유연해질 것이다.
    • LinkedHashSet을 HashSet으로 바꾸면 문제가 발생할 수 있다.
  • 적합한 인터페이스가 없다면 당연히 클래스로 참조해야 한다.

댓글