
추상 타입의 API 디자인을 선호.
SOLID 원칙 중 의존성 역전 원칙(DIP)과 리스코프 치환 원칙(LSP)을 따르는 설계로써, 구체 클래스가 아닌 추상화에 의존함을 통해 결합도를 낮추고 유연성을 높일 수 있다.
그리고, 실제 API를 사용하는 클라이언트는 구체적인 구현체의 세부사항까지 필요하지 않다. 따라서 단순하게 집합인지 단일값인지 객체인지 여부만 알려주면 된다.
다만, 구체적인 구현체를 필요로 하는 요구사항의 경우에는 이에 맞게 구현되어야 한다.
서로 다른 프로그램들이 상호작용하기 위한 규약이다. 구체적으로 두가지 관점에서 설명할 수 있다. 통신 관점에서 클라이언트와 서버간에 어떠한 방식으로 데이터를 주고 받을지에 대한 설계서를 의미한다. 소프트웨어 관점에서는 특정 기능을 사용하기 위한 인터페이스를 의미한다.