로딩
요청 처리 중입니다...

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

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

객체는 인터페이스를 사용해 참조하라. 적합한 인터페이스만 있다면 매개변수뿐 아니라 반환값, 변수, 필드를 전부 인터페이스 타입으로 선언하라.

객체의 실제 클래스를 사용해야 할 상황은 오직 생성자를 생성할 때뿐이다.!!! Set sonSet = new LinkedHashSet(); 인터페이스를 타입으로 사용한 좋은 예이다.

LinkedHashSet sonSet = new LinkedHashSet(); 클래스를 타입으로 사용한 나쁜 예이다. 인터페이스를 타입으로 사용하면 프로그램이 훨씬 유연해진다.

나중에 구현 클래스를 교체하고자 하면 새 클래스의 생성자 혹은 다른 정적 팩터리를 호출해 주기만 하면 된다. Set sonSet = new HashSet(); 위와 같이 다른 코드는 바꾸지 않고 새로 구현한 클래스로 교체가 완료된다.

주의할 점 원래의 클래스가 인터페이스의 일반 규약 이외의 특별한 기능을 제공하고, 주변 코드가 이 기능에 기대어서 동작한다...

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