Names of design patterns appear in small capitals: e.g., ADAPTER. Page numbers in bold indicate the definition of a term. Numbers in italics indicate a diagram for the term. Letters after a diagram's page number indicate the kind of diagram: a "c" denotes a class diagram, an "i" denotes an interaction diagram, and an "o" denotes an object diagram. For example, 88co means that a class and object diagram appears on page 88.

D

data member 360
DebuggingGlyph 182
DECORATOR 175
compared with ADAPTER 175, 184
compared with Composite 44, 173, 219-220
compared with PROXY 216, 219-220
compared with Strategy 179
in catalog summary 8
Lexi's use of 45c, 46o, 47
lightweight versus heavyweight 179
DECORATOR 176, 180
participant of DECORATOR 177, 177c, 180o
decorator 175
decoupling, see also coupling, loose
interface and implementation 154
senders and receivers 346
deep copy, see copy, deep
delegate 20, 144
delegation 20, 278, 360
compared with inheritance 20-21
implementing pluggable adapters with 144
patterns that rely on 21
dependency 293
managing complex 299
Dependents, see OBSERVER
derived class, see class, derived
design
déjà-vu 2
density 358
documenting with patterns 27, 352
for change 23
poetry of 356
for reuse 23
design object model 353
design pattern 360
adjunct to design methodology 353
aspects of design varied by 30
benefits 351
catalog summary 8
catalog template 6
classification 10
compared with frameworks 28
diagram of relationships 12
documenting designs with 27, 352
essential elements 3
finding 355
history of 355
how to use 29
purpose 10
refactoring with 353
scope 10
selection of 28
table of 10
destructor 360
ensuring iterator's is called 266
Dialog 223, 231
DialogDirector 274o, 275ci, 278
DialogWindow 53, 54c, 55c
DigitalClock 302
Director
participant of Builder 98c, 99, 99i
DirectoryBrowser 144, 144c, 145c
discretionary glyph 75
dispatch
double 338
multiple 339
single 338
Doc 205, see also Lexi
Document 107, 107c, 233c, 234, 234c, 325, 325c
document
color 42, 322
formatting 40
logical structure 40
physical structure 35
documenting design with patterns 27, 352
doesNotUnderstand message
used to implement CHAIN OF RESPONSIBILITY 229
used to implement PROXY 212, 215
Domain 192, 192c
Door 82c, 83
extensions for PROTOTYPE 123
double-dispatch, see dispatch, double
downcast 91
Dylan 4
use of MEMENTO 289
dynamic binding 14, 360
dynamic inheritance 309
dynamic_cast in C++ 91, 168