인터페이스는 구현보다 먼저 소비자가 믿을 계약을 세운다
구현 클래스가 바뀌어도 소비자는 인터페이스가 약속한 메서드와 속성만 의존한다.
Contract
필요한 기능의 모양만 먼저 정의
Implementation
여러 클래스가 같은 계약을 구현
Consumer
구체 클래스가 아니라 인터페이스에 의존
Swap
호출 코드를 바꾸지 않고 구현 교체
| 점검 | 기준 |
|---|---|
| 다형성 | 같은 호출 코드로 여러 구현을 교체 |
| DIP | 상위 로직이 구체 구현보다 추상 계약에 의존 |
| 경계 | 바뀔 구현과 오래 유지할 사용 계약을 분리 |
핵심 인터페이스는 타입 문법 이상의 설계 도구다.