CHAPTER 1 객체지향 모델링
1.1 모델링
1.2 UML
1.3 클래스 다이어그램
1.3.1 클래스
1.3.2 관계
체크포인트 해설
연습문제
CHAPTER 2 객체지향 원리
2.1 추상화
2.2 캡슐화
2.3 일반화 관계
2.3.1 일반화는 또 다른 캡슐화
2.3.2 일반화 관계와 위임
2.3.3 집합론 관점으로 본 일반화 관계
2.4 다형성
2.5 피터 코드의 상속 규칙
체크포인트 해설
연습문제
CHAPTER 3 SOLID 원칙
3.1 단일 책임 원칙
3.1.1 책임의 의미
3.1.2 변경
3.1.3 책임 분리
3.1.4 산탄총 수술
3.1.5 관심지향 프로그래밍과 횡단 관심 문제
3.2 개방-폐쇄 원칙
3.3 리스코프 치환 원칙
3.4 의존 역전 원칙
3.5 인터페이스 분리 원칙
체크포인트 해설
연습문제
CHAPTER 4 디자인 패턴
4.1 디자인 패턴의 이해
4.2 GoF 디자인 패턴
4.3 UML과 디자인 패턴
4.3.1 컬레보레이션
4.3.2 순차 다이어그램
4.3.3 순차 다이어그램과 클래스 다이어그램의 관계
체크포인트 해설
연습문제
CHAPTER 5 스트래티지 패턴
5.1 로봇 만들기
5.2 문제점
5.2.1 기존 로봇의 공격과 이동 방법을 수정하는 경우
5.2.2 새로운 로봇에 공격/이동 방법을 추가/수정하는 경우
5.3 해결책
5.4 스트래티지 패턴
연습문제
CHAPTER 6 싱글턴 패턴
6.1 프린터 관리자 만들기
6.2 문제점
6.3 해결책
6.4 싱글턴 패턴
6.5 싱글턴 패턴과 정적 클래스
연습문제
CHAPTER 7 스테이트 패턴
7.1 상태 머신 다이어그램
7.2 형광등 만들기
7.3 문제점
7.4 해결책
7.5 스테이트 패턴
연습문제
CHAPTER 8 커맨드 패턴
8.1 만능 버튼 만들기
8.2 문제점235
8.2.1 버튼을 눌렀을 때 다른 기능을 실행하는 경우
8.2.2 버튼을 누르는 동작에 따라 다른 기능을 실행하는 경우
8.3 해결책
8.4 커맨드 패턴
연습문제
CHAPTER 9 옵서버 패턴
9.1 여러 가지 방식으로 성적 출력하기
9.2 문제점
9.2.1 성적을 다른 형태로 출력하는 경우
9.2.2 동시 혹은 순차적으로 성적을 출력하는 경우
9.3 해결책
9.4 옵서버 패턴
연습문제
CHAPTER 10 데커레이터 패턴
10.1 도로 표시 방법 조합하기
10.2 문제점
10.2.1 또다른 도로 표시 기능을 추가로 구현하는 경우
10.2.2 여러 가지 추가 기능을 조합해야 하는 경우
10.3 해결책
10.4 데커레이터 패턴
연습문제
CHAPTER 11 템플릿 메서드 패턴
11.1 여러 회사의 모터 지원하기
11.2 문제점
11.3 해결책
11.4 템플릿 메서드 패턴
연습문제
CHAPTER 12 팩토리 메서드 패턴
12.1 여러 가지 방식의 엘리베이터 스케줄링 방법 지원하기
12.2 문제점
12.3 해결책
12.4 팩토리 메서드 패턴
연습문제
CHAPTER 13 추상 팩토리 패턴
13.1 엘리베이터 부품 업체 변경하기
13.2 문제점348
13.2.1 다른 제조 업체의 부품을 사용해야 하는 경우
13.2.2 새로운 제조 업체의 부품을 지원해야 하는 경우
13.3 해결책
13.4 추상 팩토리 패턴
연습문제
CHAPTER 14 컴퍼지트 패턴
14.1 컴퓨터에 추가 장치 지원하기
14.2 문제점
14.3 해결책
14.4 컴퍼지트 패턴
연습문제
연습문제 정답 및 해설
찾아보기