객체지향의 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만든다.- 레고 블럭 조립하듯- 키보드 마우스 갈아 끼우듯- 컴퓨터 부품 갈아 끼우듯- 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 운전자(클라이언트), 자동차 역할(인터페이스) K3, 아반떼, 모델3 (구현체) 운전자는 자동차의 역할만 알면 된다. k3를 운전하다 아반떼를 운전한다고 운전을 못하게 되는건 아니다. 로미오 역할 (인터페이스)는 대본만 있다면 장동건이 하던, 원빈이 하던 아무 상관이 없다. 내가 들어가도 문제가 없다.(?) 줄리엣 역할도 마찬가지로 김태희가 하지 않는다고 해서 줄리엣 역할이 변하게 되는건 아니란 것이다. 역할과 구현을 분리하자역할과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리해진다.- ..