객체 지향 특징
-추상화
-캡슐화
-상속
-다형성
역할과 구현을 분리
자바 언어의 다형성을 활용
역할 = 인터페이스
구현 = 인터페이스를 구현한 클래스, 구현 객체
객체를 설계할 때 역할과 구현을 명확히 분리.
객체 설계시 역할(인터페이스)을 먼저 부여하고, 그 역학을 수행하는 구현 객체 만들기
유연하고 변경이 용이
확장 가능한 설계가 된다. (ex. 테슬라가 나와도 운전자는 사용 가능)
클라이언트에 영향을 주지 않는 변경 가능
인터페이스를 안정적으로 잘 설계하는 것이 중요하다.