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