목차
▣ 01장: 협력하는 객체들의 공동체</br>협력하는 사람들 </br>- 커피 공화국의 아침 </br>- 요청과 응답으로 구성된 협력 </br>- 역할과 책임</br>역할, 책임, 협력 </br>- 기능을 구현하기 위해 협력하는 객체들 </br>- 역할과 책임을 수행하며 협력하는 객체들 </br>협력 속에 사는 객체 </br>- 상태와 행동을 함께 지닌 자율적인 객체 </br>- 협력과 메시지 </br>- 메서드와 자율성 </br>객체지향의 본질</br>- 객체를 지향하라 </br></br>▣ 02장: 이상한 나라의 객체</br>객체지향과 인지 능력 </br>객체, 그리고 이상한 나라</br>- 이상한 나라의 앨리스 </br>- 앨리스 객체 </br>객체, 그리고 소프트웨어 나라</br>- 상태 </br>- 행동 </br>- 식별자</br>기계로서의 객체</br>행동이 상태를 결정한다</br>은유와 객체</br>- 두 번째 도시전설 </br>- 의인화 </br>- 은유 </br>- 이상한 나라를 창조하라 </br></br>▣ 03장: 타입과 추상화 </br>추상화를 통한 복잡성 극복 </br>객체지향과 추상화 </br>- 모두 트럼프일 뿐 </br>- 그룹으로 나누어 단순화하기 </br>- 개념 </br>- 개념의 세 가지 관점 </br>- 객체를 분류하기 위한 틀 </br>- 분류는 추상화를 위한 도구다 </br>타입</br>- 타입은 개념이다 </br>- 데이터 타입 </br>- 객체와 타입 </br>- 행동이 우선이다 </br>타입의 계층</br>- 트럼프 계층 </br>- 일반화/특수화 관계 </br>- 슈퍼타입과 서브타입 </br>- 일반화는 추상화를 위한 도구다 </br>정적 모델</br>- 타입의 목적 </br>- 그래서 결국 타입은 추상화다</br>- 동적 모델과 정적 모델</br>- 클래스</br></br>▣ 04장: 역할, 책임, 협력 </br>협력</br>- 요청하고 응답하며 협력하는 사람들 </br>- 누가 파이를 훔쳤지? </br>- 재판 속의 협력</br>책임 </br>- 책임의 분류</br>- 책임과 메시지</br>역할 </br>- 책임의 집합이 의미하는 것</br>- 판사와 증인</br>- 역할이 답이다</br>- 협력의 추상화</br>- 대체 가능성 </br>객체의 모양을 결정하는 협력 </br>- 흔한 오류</br>- 협력을 따라 흐르는 객체의 책임</br>객체지향 설계 기법 </br>- 책임-주도 설계</br>- 디자인 패턴</br>- 테스트-주도 개발</br></br>▣ 05장: 책임과 메시지 </br>자율적인 책임 </br>- 설계의 품질을 좌우하는 책임</br>- 자신의 의지에 따라 증언할 수 있는 자유</br>- 너무 추상적인 책임</br>- ‘어떻게’가 아니라 ‘무엇’을</br>- 책임을 자극하는 메시지</br>메시지와 메서드 </br>- 메시지</br>- 메서드</br>- 다형성</br>- 유연하고 확장 가능하고 재사용성이 높은 협력의 의미</br>- 송신자와 수신자를 약하게 연결하는 메시지</br>메시지를 따라라 </br>- 객체지향의 핵심, 메시지</br>- 책임-주도 설계 다시 살펴보기 </br>- What/Who 사이클</br>- 묻지 말고 시켜라</br>- 메시지를 믿어라</br>객체 인터페이스 </br>- 인터페이스</br>- 메시지가 인터페이스를 결정한다</br>- 공용 인터페이스</br>- 책임, 메시지, 그리고 인터페이스</br>인터페이스와 구현의 분리</br>- 객체 관점에서 생각하는 방법 </br>- 구현</br>- 인터페이스와 구현의 분리 원칙</br>- 캡슐화</br>책임의 자율성이 협력의 품질을 결정한다</br></br>▣ 06장: 객체 지도</br>기능 설계 대 구조 설계 </br>두 가지 재료: 기능과 구조 </br>안정적인 재료: 구조 </br>- 도메인 모델</br>- 도메인의 모습을 담을 수 있는 객체지향 </br>- 표현적 차이</br>- 불안정한 기능을 담는 안정적인 도메인 모델</br>불안정한 재료: 기능 </br>- 유스케이스</br>- 유스케이스의 특성</br>- 유스케이스는 설계 기법도, 객체지향 기법도 아니다</br>재료 합치기: 기능과 구조의 통합</br>- 도메인 모델, 유스케이스, 그리고 책임-주도 설계 </br>- 기능 변경을 흡수하는 안정적인 구조</br></br>▣ 07장: 함께 모으기 </br>커피 전문점 도메인</br>- 커피 주문</br>- 커피 전문점이라는 세상</br>설계하고 구현하기</br>- 커피를 주문하기 위한 협력 찾기</br>- 인터페이스 정리하기</br>- 구현하기 </br>코드와 세 가지 관점 </br>- 코드는 세 가지 관점을 모두 제공해야 한다 </br>- 도메인 개념을 참조하는 이유 </br>- 인터페이스와 구현을 분리하라 </br>추상화 기법