목차 일부
UML에 대해서 ... 27
UML ... 27
클래스 다이어그램 ... 27
클래스의 관계 ... 32
시퀀스 다이어그램 ... 32
디자인 패턴을 배우기 전에 ... 35
Part 1 디자인 패턴과 친해지기
Chapter 01 Iterator - 순서대로 지정해서 처리하기 ... 39
1 Iterator 패턴 ......
더보기
목차 전체
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
더보기 닫기