인터페이스를 활용한 설계

인터페이스 의존 방향 설계

클래스가 구체 구현에 기대지 않고 인터페이스 계약에 의존하면 교체 가능성과 테스트 용이성이 높아집니다.

계약

필요 기능만 공개

사용자가 알아야 할 메서드와 속성만 인터페이스에 남겨 구현 세부를 숨깁니다.

interface
다형성

교체 가능한 구현

같은 인터페이스를 구현한 여러 클래스를 동일한 코드에서 다룰 수 있습니다.

polymorphism
의존 역전

구체 클래스 분리

상위 로직이 세부 구현이 아니라 추상 계약에 기대도록 구조를 바꿉니다.

DIP
확장

작은 계약 조합

큰 인터페이스 하나보다 역할별 작은 인터페이스를 확장해 필요한 만큼 묶습니다.

extends