
객체지향의 정의와 3가지 핵심
현실세계와 객체지향 세계 사이의 관계는 모방이나 추상화의 수준이 아닌 은유(metaphor)의 관점에서 표현한다.

요약 : 객체지향에서 중요한 것은 동적으로 변하는 객체의 상태와 상태를 변경하는 행위이다. 클래스는 타입을 구현하기 위해 프로그래밍 언어에서 제공하는 구현 매커니즘중 하나이다.

협력,책임,역할을 토대로 객체지향 시스템을 설계해라.

객체지향 패러다임으로의 전환은 시스템을 정적인 클래스의 집합이 아니라 메시지를 주고받는 동적인 객체들의 집합으로 바라보는 것에서 시작된다.

견고한 객체지향 애플리케이션을 개발하기 위해서는 사용자의 관점에서 시스템의 기능을 명시하고, 사용자와 설계자가 공유하는 안정적인 구조를 기반으로 기능을 책임으로 변환하는 체계적인 절차를 따라야 한다.

개념 관점, 명세 관점, 구현 관점은 동일한 코드를 바라보는 서로다른 관점이다. 개발자는 세가지 관점을 모두 포함하면서도 각 관점에 대응되는 요소를 명확하고 깔끔하게 드러내야 한다.