▣ 들어가며: 프로그래밍 패러다임
01 패러다임의 시대
02 프로그래밍 패러다임
▣ 1장: 객체, 설계
01. 티켓 판매 애플리케이션 구현하기
02. 무엇이 문제인가
___예상을 빗나가는 코드
___변경에 취약한 코드
03. 설계 개선하기
___자율성을 높이자
___무엇이 개선됐는가
___어떻게 한 것인가
___캡슐화와 응집도
___절차지향과 객체지향
___책임의 이동
___더 개선할 수 있다
___그래, 거짓말이다!
04. 객체지향 설계
___설계가 왜 필요한가
___객체지향 설계
▣ 2장: 객체지향 프로그래밍
01. 영화 예매 시스템
___ 요구사항 살펴보기
02. 객체지향 프로그래밍을 향해
___ 협력, 객체, 클래스
___ 도메인의 구조를 따르는 프로그램 구조
___ 클래스 구현하기
___ 협력하는 객체들의 공동체
___ 협력에 관한 짧은 이야기
03. 할인 요금 구하기
___ 할인 요금 계산을 위한 협력 시작하기
___ 할인 정책과 할인 조건
___ 할인 정책 구성하기
04. 상속과 다형성
___ 컴파일 시간 의존성과 실행 시간 의존성
___ 차이에 의한 프로그래밍
___ 상속과 인터페이스
___ 다형성
___ 인터페이스와 다형성
05. 추상화와 유연성
___ 추상화의 힘
___ 유연한 설계
___ 추상 클래스와 인터페이스 트레이드오프
___ 코드 재사용
___ 상속
___ 합성
▣ 3장: 역할, 책임, 협력
01. 협력
___ 영화 예매 시스템 돌아보기
___ 협력
___ 협력이 설계를 위한 문맥을 결정한다
02. 책임
___ 책임이란 무엇인가
___ 책임 할당
___ 책임 주도 설계
___ 메시지가 객체를 결정한다
___ 행동이 상태를 결정한다
03. 역할
___ 역할과 협력
___ 유연하고 재사용 가능한 협력
___ 객체 대 역할