객체 지향이란 객체들이 독립적으로 있고 객체간 협력하여 목적하는 동작을 하는 것이다. 그 중 가장 중요한 특징은 다형성이다.
클라이언트에 대상 서비스를 제공하는 서버의 역할이 변경되더라도 클라이언트가 서비스를 이용하는데 영향받지 않는다.
역할과 구현을 분리한다. 역할은 인터페이스, 구현은 구현객체.
예시
실세계의 역할과 구현이라는 편리한 컨셉을 다형성을 통해 객체 세상으로 가져올 수 있음
유연하고 변경이 용이
확장 가능한 설계
클라이언트에 영향을 주지 않은 변경
인터페이스의 설계가 중요함 - 만약 자동차 인터페이스를 수정해서 비행기로 만든다면?