오브젝트 객체, 설계 객체지향 프로그래밍 역할, 책임, 협력 설계 품질과 프레이드오프 책임 할당하기 메시지와 인터페이스 객체 분해 의존성 관리하기 유연한 설계 상속과 코드 재사용 합성과 유연한 설계 다형성 서브클래싱과 서브타이핑 일관성 있는 협력 디자인 패턴과 프레임워크 부록 계약에 의한 설계 타입 계층의 구현 동적인 협력, 정적인 코드