필요 기능만 공개
사용자가 알아야 할 메서드와 속성만 인터페이스에 남겨 구현 세부를 숨깁니다.
interface
클래스가 구체 구현에 기대지 않고 인터페이스 계약에 의존하면 교체 가능성과 테스트 용이성이 높아집니다.
사용자가 알아야 할 메서드와 속성만 인터페이스에 남겨 구현 세부를 숨깁니다.
interface
같은 인터페이스를 구현한 여러 클래스를 동일한 코드에서 다룰 수 있습니다.
polymorphism
상위 로직이 세부 구현이 아니라 추상 계약에 기대도록 구조를 바꿉니다.
DIP
큰 인터페이스 하나보다 역할별 작은 인터페이스를 확장해 필요한 만큼 묶습니다.
extends