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