이번에는 인터페이스 분리 원칙
을 정리해 보겠다.
이 원칙은 지나치게 많은 추상 메서드
를 가진 거대한 인터페이스 하나를, 관련된 추상 메서드
들만 모여있도록 작은 크기의 인터페이스로 분리하라는 뜻이다.
이렇게 해야 하는 이유는 지나치게 큰 인터페이스는 그걸 상속
하는 클래스가 자신에게 필요하지도 않은 메서드를 굳이 오버라이딩
하도록 만들기 때문이다.
인터페이스가 서로 관련성이 높은, 적절한 개수의 추상 메서드
들을 포함하게 될 때 그걸 역할 인터페이스(Role Interface) 라고 한다.
큰 인터페이스 하나가 있는 것보다는 작은 역할 인터페이스 여러 개가 있으면 각 클래스가 본인에 해당하는 인터페이스만 적절히 상속
받게 된다.
그럼 각 클래스가 어떤 기능을 갖는지 더 세밀하게 파악할 수 있게 해준다는 장점이 있다.
인터페이스를 분리할 때 어떤 기준으로 나눌지는 상황에 따라 당연히 다르다. 하지만 중요한 건 관련있는 기능끼리 한 인터페이스에 모으고 한 인터페이스가 지나치게 커지지 않도록 하겠다는 생각을 갖고 인터페이스를 설계하는 것이다.
인터페이스 : 추상 클래스
추상 메서드
를 너무 많이 가진 추상 클래스
를 만들지 말라.
분리하여 역할 인터페이스를 관련있는 기능끼리 묶어서 사용해라.