[Effective Java] 객체는 인터페이스를 사용해 참조하라.


[Effective Java] 객체는 인터페이스를 사용해 참조하라.

객체는 인터페이스를 사용해 참조하라. 적합한 인터페이스만 있다면 매개변수뿐 아니라 반환값, 변수, 필드를 전부 인터페이스 타입으로 선언하라. 객체의 실제 클래스를 사용해야 할 상황은 오직 생성자를 생성할 때뿐이다.!!! Set<Son> sonSet = new LinkedHashSet<>(); 인터페이스를 타입으로 사용한 좋은 예이다. LinkedHashSet<Son> sonSet = new LinkedHashSet<>(); 클래스를 타입으로 사용한 나쁜 예이다. 인터페이스를 타입으로 사용하면 프로그램이 훨씬 유연해진다. 나중에 구현 클래스를 교체하고자 하면 새 클래스의 생성자 혹은 다른 정적 팩터리를 호출해 주기만 하면 된다. Set<Son> sonSet = new HashSet<>(); 위와 같이 다른 코드는 바꾸지 않고 새로 구현한 클래스로 교체가 완료된다. 주의할 점 원래의 클래스가 인터페이스의 일반 규약 이외의 특별한 기능을 제공하고, 주변 코드가 이 기능에 기대어서 동작한다...


#Effectivejava #java #이펙티브자바 #자바

원문링크 : [Effective Java] 객체는 인터페이스를 사용해 참조하라.