Interface Design

인터페이스는 구현보다 먼저 지켜야 할 계약을 세운다

구현 클래스가 달라져도 소비자는 인터페이스가 약속한 메서드와 속성만 믿고 코드를 작성한다.

설계 경계

loose coupling

계약 선언

필요한 기능의 모양만 먼저 정의해 구현 세부사항을 숨긴다.

다형성

여러 클래스가 같은 인터페이스를 구현하면 같은 호출 코드로 교체 가능해진다.

의존성 역전

상위 로직이 구체 클래스가 아니라 인터페이스에 기대도록 설계한다.

interfaceimplconsumerreplace
읽는 법

인터페이스는 타입 문법 이상의 설계 도구다. 바뀔 수 있는 구현과 오래 유지할 사용 계약을 분리한다.