객체지향 패러다임의 핵심은 클래스나 상속이 아니라 자율적인 객체들의 협력이다.
행동이 상태를 결정한다.
데이터는 자신에게 어떤 종류의 연산이 적용될 수 있는지에 따라 어떤 타입에 속하는지 결정된다.
개별적인 객체의 행동이나 상태가 아니라 객체들 간의 협력에 집중하라.
명확한 책임과 역할을 지닌 객체들이 협력에 참여해야한다. 또한, 메시지가 책임을 결정함을 기억하라.
기능이 아닌 구조를 기반으로 해결 방법을 구축하는 편이 좀 더 범용적이고 이해하기 쉬우며 변경에 안정적이다.
객체지향 설계의 세 가지 관점 : 개념 관점, 명세 관점, 구현 관점
도메인의 복잡성을 단순화하기 위해 다양한 추상화 기법을 사용한다.