목차
UML에 대해서 ... 27
   UML ... 27
   클래스 다이어그램 ... 27
   클래스의 관계 ... 32
   시퀀스 다이어그램 ... 32
디자인 패턴을 배우기 전에 ... 35
Part 1 디자인 패턴과 친해지기
   Chapter 01 Iterator - 순서대로 지정해서 처리하기 ... 39
      1 Iterator 패턴 ... 40
      2 예제 프로그램 ... 41
      3 Iterator 패턴의 등장인물 ... 48
      4 독자의 사고를 넓히기 위한 힌트 ... 49
      5 관련 패턴 ... 53
      연습문제 ... 54
   Chapter 02 Adapter - 바꿔서 재이용하기 ... 55
      1 Adapter 패턴 ... 56
      2 예제 프로그램(1)(상속을 사용한 Adapter 패턴) ... 57
      3 예제 프로그램(2)(위임을 사용한 Adapter 패턴) ... 61
      4 Adapter 패턴의 등장인물 ... 63
      5 독자의 사고를 넓히기 위한 힌트 ... 64
      6 관련 패턴 ... 66
      연습문제 ... 67
Part 2 하위 클래스에게 위임하기
   Chapter 03 Template Method - 하위 클래스에서 구체적으로 처리하기 ... 69
      1 Template Method 패턴 ... 70
      2 예제 프로그램 ... 71
      3 Template Method 패턴의 등장인물 ... 77
      4 독자의 사고를 넓히기 위한 힌트 ... 78
      5 관련 패턴 ... 79
      6 보강 : 클래스 계층과 추상 클래스 ... 80
      연습문제 ... 82
   Chapter 04 Factory Method - 하위 클래스에서 인스턴스 만들기 ... 83
      1 Factory Method 패턴 ... 84
      2 예제 프로그램 ... 84
      3 Factory Method 패턴의 등장인물 ... 89
      4 독자의 사고를 넓히기 위한 힌트 ... 90
      5 관련 패턴 ... 93
      연습문제 ... 94
Part 3 인스턴스 만들기
   Chapter 05 Singleton - 인스턴스를 한 개만 만들기 ... 95
      1 Singleton 패턴 ... 96
      2 예제 프로그램 ... 96
      3 Singleton 패턴의 등장인물 ... 99
      4 독자의 사고를 넓히기 위한 힌트 ... 100
      5 관련 패턴 ... 100
      연습문제 ... 101
   Chapter 06 Prototype - 복사해서 인스턴스 만들기 ... 103
      1 Prototype 패턴 ... 104
      2 예제 프로그램 ... 105
      3 Prototype 패턴의 등장인물 ... 112
      4 독자의 사고를 넓히기 위한 힌트 ... 113
      5 관련 패턴 ... 114
      6 보강 : clone 메소드와 java.lang.Cloneable 인터페이스 ... 115
      연습문제 ... 118
   Chapter 07 Builder - 복잡한 인스턴스 조립하기 ... 119
      1 Builder 패턴 ... 120
      2 예제 프로그램 ... 120
      3 Builder 패턴의 등장인물 ... 128
      4 관련 패턴 ... 130
      5 독자의 사고를 넓히기 위한 힌트 ... 130
      연습문제 ... 133
   Chapter 08 Abstarct Factory - 관련 부품을 조합해서 제품 만들기 ... 135
      1 Abstract Factroy 패턴 ... 136
      2 예제 프로그램 ... 137
      3 예제 프로그램에 별도의 구체적인 공장을 추가하기 ... 151
      4 Abstract Factory 패턴의 등장인물 ... 155
      5 독자의 사고를 넓히기 위한 힌트 ... 157
      6 관련 패턴 ... 158
      7 보강 : 인스턴스를 만드는 다양한 방법 ... 159
      연습문제 ... 161
Part 4 분리해서 생각하기
   Chapter 09 Bridge - 기능 계층과 구현 계층 분리하기 ... 163
      1 Bridge 패턴 ... 164
      2 예제 프로그램 ... 167
      3 Bridge 패턴의 등장인물 ... 172
      4 독자의 사고를 넓히기 위한 힌트 ... 173
      5 관련 패턴 ... 175
      연습문제 ... 176
   Chapter 10 Strategy - 알고리즘을 모두 바꾸기 ... 177
      1 Strategy 패턴 ... 178
      2 예제 프로그램 ... 178
      3 Strategy 패턴의 등장인물 ... 189
      4 독자의 사고를 넓히기 위한 힌트 ... 190
      5 관련 패턴 ... 191
      연습문제 ... 192
Part 5 동일시하기
   Chapter 11 Composite - 그릇과 내용물을 동일시하기 ... 195
      1 Composite 패턴 ... 196
      2 예제 프로그램 ... 196
      3 Composite 패턴의 등장인물 ... 205
      4 독자의 사고를 넓히기 위한 힌트 ... 206
      5 관련 패턴 ... 209
      연습문제 ... 210
   Chapter 12 Decorator - 장식과 내용물을 동일시하기 ... 211
      1 Decorator 패턴 ... 212
      2 예제 프로그램 ... 212
      3 Decorator 패턴의 등장인물 ... 220
      4 독자의 사고를 넓히기 위한 힌트 ... 222
      5 관련 패턴 ... 225
      6 보강 : 상속의 동일시와 위임의 동일시 ... 226
      연습문제 ... 229
Part 6 구조를 돌아다니기
   Chapter 13 Visitor - 데이터 구조를 돌아다니면서 처리하기 ... 231
      1 Visitor 패턴 ... 232
      2 예제 프로그램 ... 232
      3 Visitor 패턴의 등장인물 ... 243
      4 독자의 사고를 넓히기 위한 힌트 ... 244
      5 관련 패턴 ... 248
      연습문제 ... 249
   Chapter 14 Chain of Responsibility - 책임 떠넘기기 ... 253
      1 Chain of Responsibility 패턴 ... 254
      2 예제 프로그램 ... 255
      3 Chain of Responsibility 패턴의 등장인물 ... 262
      4 독자의 사고를 넓히기 위한 힌트 ... 263
      5 관련 패턴 ... 265
      연습문제 ... 266
Part 7 단순화하기
   Chapter 15 Facade - 단순한 창구 ... 267
      1 Facade 패턴 ... 268
      2 예제 프로그램 ... 268
      3 Facade 패턴의 등장인물 ... 275
      4 독자의 사고를 넓혀주기 위한 힌트 ... 276
      5 관련 패턴 ... 277
      연습문제 ... 279
   Chapter 16 Mediator - 중개인을 통해서 처리하기 ... 281
      1 Mediator 패턴 ... 282
      2 예제 프로그램 ... 283
      3 Mediator 패턴의 등장인물 ... 295
      4 독자의 사고를 넓히기 위한 힌트 ... 296
      5 관련 패턴 ... 298
      연습문제 ... 298
Part 8 상태를 관리하기
   Chapter 17 Observer - 상태의 변화를 알려주기 ... 299
      1 Observer 패턴 ... 300
      2 예제 프로그램 ... 300
      3 Observer 패턴의 등장인물 ... 306
      4 독자의 사고를 넓히기 위한 힌트 ... 307
      5 보강 : java.util.Observer 인터페이스 ... 311
      6 관련 패턴 ... 312
      연습문제 ... 313
   Chapter 18 Memento - 상태를 저장하기 ... 315
      1 Memento 패턴 ... 316
      2 예제 프로그램 ... 317
      3 Memento 패턴의 등장인물 ... 324
      4 독자의 사고를 넓히기 위한 힌트 ... 326
      5 관련 패턴 ... 329
      연습문제 ... 330
   Chapter 19 State - 상태를 클래스로 표현하기 ... 333
      1 State 패턴 ... 334
      2 예제 프로그램 ... 334
      3 State 패턴의 등장인물 ... 348
      4 독자의 사고를 넓히기 위한 힌트 ... 349
      5 관련 패턴 ... 354
      연습문제 ... 355
Part 9 낭비 없애기
   Chapter 20 Flyweight - 동일한 것을 공유해서 낭비 없애기 ... 357
      1 Flyweight 패턴 ... 358
      2 예제 프로그램 ... 359
      3 Flyweight 패턴의 등장인물 ... 367
      4 독자의 사고를 넓히기 위한 힌트 ... 368
      5 관련 패턴 ... 372
      연습문제 ... 373
   Chapter 21 Proxy - 필요해지면 만들기 ... 375
      1 Proxy 패턴 ... 376
      2 예제 프로그램 ... 376
      3 Proxy 패턴의 등장인물 ... 383
      4 독자의 사고를 넓히기 위한 힌트 ... 384
      5 관련 패턴 ... 387
      연습문제 ... 388
Part 10 클래스로 표현하기
   Chapter 22 Command - 명령을 클래스로 하기 ... 389
      1 Command 패턴 ... 390
      2 예제 프로그램 ... 390
      3 Command 패턴의 등장인물 ... 401
      4 독자의 사고를 넓히기 위한 힌트 ... 403
      5 관련 패턴 ... 407
      연습문제 ... 408
   Chapter 23 Interpreter - 문법규칙을 클래스로 표현하기 ... 409
      1 Interpreter 패턴 ... 410
      2 미니 언어 ... 411
      3 예제 프로그램 ... 418
      4 Interpreter 패턴의 등장인물 ... 430
      5 독자의 사고를 넓히기 위한 힌트 ... 431
      6 관련 패턴 ... 433
      연습문제 ... 434
Appendix(부록) ... 435
   A : 연습문제 해답 ... 436
   B : 예제 프로그램의 실행 순서 ... 524
   C : GoF에 따른 디자인 패턴의 분류 ... 526
   D : 디자인 패턴 Q&A ... 527
   E : 참고 문헌 ... 530
Index(찾아보기) ... 531
닫기