객체의 관점에서 프로그래밍을 한다기계의 부품을 조립하여 제품을 만들 듯이 객체를 만들어 소프트웨어를 개발할 때에 객체들을 조립하여 작성하는 프로그래밍객체란 우리가 보고 느끼고 인지할 수 있는 모든 것을 의미한다애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을
복잡한 시스템을 쉽게 사용하는 방법이다시스템의 부분집합을 사용시스템을 특정한 방법으로 사용클라이언트 객체가 다루어야 할 객체의 수를 줄여줌새로운 기능을 추가하여 확장 가능캡슐화 층 - 시스템을 감추고 캡슐화바꾸기(change) 보다는 적응시킴(adapt)인터페이스를 설