[Effective Java] 52. 객체를 참조할 때는 그 인터페이스를 사용하라.
만약 적당한 Interface 자료형이 있다면 parameter, return value, 변수, 멤버 필드의 자료형은 가능한 Class 대신 Interface로 선언하는 것이 좋다.
객체의 실제 Class를 참조할 필요가 있는 순간은 생성자로 객체를 생성할때이다.
// 좋은 예
List<Subscriber> subscribers = new Vector<Subscriber>();
// 나쁜 예
Vector<Subscriber> subscribers = new Vector<Subscriber>();
interface를 자료형으로 사용하면 프로그램이 유연해진다.
만약 어떤 객체의 구현을 다른 것으로 변경하고 싶을때 인터페이스를 사용중이라면 별다른 수정 없이 구현체를 변경할 수 있다.
만약 적당한 interface가 없다면 class로 참조하는 것이 당연하다.
class를 참조할때 우선 abstract로 선언된 class를 상속받는 구조라면 해당 class를 자료형으로 참조하는 것이 좋다.
그렇지 않다면 당연히 원래 class를 참조하게 될 것이다.
만약 구현 class에만 있는 특정 기능을 사용한다고 한다면 그때도 당연히 해당 class를 직접 참조하게 될 것이다.
댓글남기기