옮긴이 머리말 = 7
머리말 = 10
1부 객체지향 소프트웨어 개발 소개
1장 객체지향 패러다임
개요 = 31
1.1 객체지향 패러다임이 나오기 이전 : 기능적 분해 = 32
1.2 요구사항의 문제점 = 33
1.3 요구사항 변경에 대처하기 : 기능적 분해 = 34
1.4 변경되는 요구사항 다루기 = 37
1.5 객체지향 패러다임 = 40
1.6 실제로 해보는 객체지향 프로그래밍 = 46
1.7 특별한 객체 메소드 = 49
1.8 요약 = 50
2장 UML
개요 = 53
2.1 UML이란 무엇인가? = 54
2.2 왜 UML을 사용하는가? = 54
2.3 클래스 다이어그램 = 55
2.4 인터랙션 다이어그램 = 61
2.5 요약 = 63
2부 전통적인 객체지향 설계의 한계점
3장 유연한 코드를 요구하는 문제점 사례 하나
개요 = 67
3.1 CAD/CAM 시스템으로부터 정보 추출하기 = 68
3.2 전문 용어를 이해하자 = 69
3.3 문제점에 대하여 기술하기 = 70
3.4 필수적인 도전과제와 접근법 = 72
3.5 요약 = 75
4장 표준적인 객체지향 해결법
개요 = 77
4.1 특별한 경우를 해결하기 = 78
4.2 요약 = 84
4.3 첨부 : C++ 코드 예제 = 85
3부 디자인 패턴
5장 디자인 패턴 소개
개요 = 91
5.1 디자인 패턴은 건축학과 문화 인류학으로부터 기인했다 = 92
5.2 건축 패턴에서 소프트웨어 디자인 패턴으로 이동 = 95
5.3 왜 패턴을 공부하는가? = 97
5.4 디자인 패턴을 공부함으로써 생기는 또 다른 이점 = 101
5.5 요약 = 102
6장 Fa \cedilc ade 패턴
개요 = 105
6.1 Fa \cedilc ade 패턴의 소개 = 106
6.2 Fa \cedilc ade 패턴 배우기 = 106
6.3 필드 노트 : Fa \cedilc ade 패턴 이용하기 = 109
6.4 CAD/CAM 문제점에 Fa \cedilc ade 패턴을 관련짓기 = 111
6.5 요약 = 111
7장 Adapter 패턴
개요 = 113
7.1 Adapter 패턴의 소개 = 114
7.2 Adapter 패턴 배우기 = 114
7.3 필드 노트 : Adapter 패턴 이용하기 = 120
7.4 CAD/CAM 문제점에 Adapter 패턴을 관련짓기 = 122
7.5 요약 = 123
7.6 첨부 : C++ 코드 예제 = 123
8장 시야의 확장
개요 = 125
8.1 객체 : 전통적인 시각과 새로운 시각 = 127
8.2 캡술화 : 전통적인 시각과 새로운 시각 = 128
8.3 무엇이 변화하고 있는지 찾고 그것을 캡슐화하자 = 131
8.4 공통성/가변성 그리고 추상 클래스 = 134
8.5 요약 = 135
9장 Bridge 패턴
개요 = 137
9.1 Bridge 패턴의 소개 = 138
9.2 Bridge 패턴 배우기 : 예제 = 139
9.3 디자인 패턴의 이용에 대한 관찰 = 150
9.4 Bridge 패턴 배우기 : 이 패턴을 유도해 내자 = 151
9.5 Bridge 패턴에 대한 회고 = 161
9.6 필드 노트 : Bridge 패턴 이용하기 = 162
9.7 요약 = 165
9.8 첨부 : C++ 코드 예제 = 166
10장 Abstract Factory 패턴
개요 = 173
10.1 Abstract Factory 패턴의 소개 = 174
10.2 Abstract Factory 패턴 배우기 : 예제 = 174
10.3 Abstract Factory 패턴 배우기 : 패턴 구현하기 = 181
10.4 필드 노트 : Abstract Factory 패턴 이용하기 = 184
10.5 CAD/CAM 문제점에 Abstract Factory 패턴을 관련짓기 = 187
10.6 요약 = 188
10.7 첨부 : C++ 코드 예제 = 188
4부 함께 통합하기 : 패턴 방식으로 생각하기
11장 전문가는 어떻게 설계하는가?
개요 = 193
11.1 구별되는 특징을 추가하면서 구축하기 = 194
11.2 요약 = 200
12장 패턴으로 푸는 CAD/CAM 문제
개요 = 203
12.1 CAD/CAM 문제점의 재검토 = 204
12.2 패턴 방식으로 생각하기 = 205
12.3 패턴 방식으로 생각하기 : 1단계 = 206
12.4 패턴 방식으로 생각하기 : 2a단계 = 206
12.5 패턴 방식으로 생각하기 : 2b단계 = 210
12.6 패턴 방식으로 생각하기 : 2c단계 = 214
12.7 패턴 방식으로 생각하기 : 2d단계(Fa \cedilc ade) = 215
12.8 패턴 방식으로 생각하기 : 2d단계(Adapter) = 216
12.9 패턴 방식으로 생각하기 : 2d단계(Abstract Factory) = 217
12.10 패턴 방식으로 생각하기 : 3단계 = 217
12.11 이전 해결법과의 비교 = 218
12.12 요약 = 219
13장 디자인 패턴의 원리와 전략
개요 = 221
13.1 Open-Closed 원리 = 222
13.2 전후 관계로부터 설계하는 원리 = 222
13.3 변화를 포함하는 원리 = 226
13.4 요약 = 227
5부 디자인 패턴으로 변화를 처리하기
14장 Strategy 패턴
개요 = 231
14.1 새로운 요구사항 처리를 위한 접근법 = 232
14.2 사례 연구의 초기 요구사항 = 234
14.3 새로운 요구사항 처리하기 = 234
14.4 Strategy 패턴 = 238
14.5 필드 노트 : Strategy 패턴 이용하기 = 240
14.6 요약 = 241
15장 Decorator 패턴
개요 = 243
15.1 좀 더 상세한 사항 = 244
15.2 Decorator 패턴 = 246
15.3 사례 연구에 Decorator 패턴 적용하기 = 247
15.4 다른 예 : 입력/출력 = 250
15.5 필드 노트 : Decorator 패턴 이용하기 = 252
15.6 요약 = 254
15.7 첨부 : C++ 코드 예제 = 254
16장 Singleton 패턴과 Double-Checked Locking 패턴
개요 = 257
16.1 Singleton 패턴의 소개 = 258
16.2 사례 연구에 Singleton 패턴 적용하기 = 258
16.3 Singleton 패턴의 변화 : Double-Checked Locking 패턴 = 260
16.4 필드 노트 : Singleton 패턴과 Double-Checked Locking 패턴 이용하기 = 262
16.5 요약 = 263
16.6 첨부 : C++ 코드 예제 = 263
17장 Observer 패턴
개요 = 265
17.1 패턴의 분류 = 266
17.2 사례 연구를 위한 추가적인 요구사항 = 267
17.3 Observer 패턴 = 268
17.4 사례 연구에 Observer 패턴 적용하기 = 269
17.5 필드 노트 : Observer 패턴 이용하기 = 274
17.6 요약 = 275
17.7 첨부 : C++ 코드 예제 = 276
18장 Template Method 패턴
개요 = 279
18.1 사례 연구를 위한 추가적인 요구사항 = 280
18.2 Template Method 패턴 = 280
18.3 사례 연구에 Template Method 패턴 적용하기 = 281
18.4 필드 노트 : Template Method 패턴 이용하기 = 283
18.5 요약 = 284
19장 Factory Method 패턴
개요 = 285
19.1 사례 연구를 위한 추가적인 요구사항 = 286
19.2 Factory Method 패턴 = 287
19.3 필드 노트 : Factory Method 패턴 이용하기 = 287
19.4 요약 = 289
20장 분석 행렬
개요 = 291
20.1 실무에서 벌어지는 일 : 문제점의 변화 = 292
20.2 변화에 대한 사례 연구 : 국제적인 E-tail 시스템 = 292
20.3 필드 노트 = 300
20.4 요약 = 301
6부 결말과 발단
21장 새로운 객체지향 설계 관점에서 다시 본 디자인 패턴
개요 = 305
21.1 객체지향 원리의 요약 = 306
21.2 어떻게 디자인 패턴이 구현을 캡슐화하는가? = 306
21.3 공통성/가변성 분석 그리고 디자인 패턴 = 307
21.4 문제 영역을 책임으로 분해하기 = 307
21.5 패턴 간의 관계 = 308
21.6 패턴과 전후 관계를 이용한 설계 = 309
21.7 필드 노트 = 310
21.8 요약 = 310
22장 참고 서적 목록
개요 = 313
22.1 알기 쉬운 디자인 패턴 : 웹 사이트 길잡이 = 314
22.2 디자인 패턴과 객체지향에 관련되어 추천하는 읽을거리 = 314
22.3 자바 프로그래머를 위해 추천하는 읽을거리 = 316
22.4 C++ 프로그래머를 위해 추천하는 읽을거리 = 317
22.5 코볼 프로그래머를 위해 추천하는 읽을거리 = 317
22.6 익스트림 프로그래밍을 위해 추천하는 읽을거리 = 317
22.7 일반적인 프로그래밍을 위해 추천하는 읽을거리 = 318
22.8 개인적으로 선호하는 사항 = 318
찾아보기 = 321