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.

## A

abstract class 15, 16c, 359, 364, 365c
abstract coupling, see coupling, abstract
  in OBSERVER 296
ABSTRACT FACTORY 87
  extensibility of 91
  in catalog summary 8
  Lexi's use of 51
  used to configure a subsystem 193
Abstract Factory
  participant of ABSTRACT FACTORY 88c, 89
abstract operation, see operation, abstract
  use to implement ADAPTER 144
abstract syntax tree 244, 251, 331
  class structure for 244c, 331c
  constructing in Smalltalk 250
  object structure for 244o
AbstractExpression
  participant of INTERPRETER 245c, 245
Abstraction
  participant of BRIDGE 153c, 154
AbstractProduct
  participant of ABSTRACT FACTORY 88c, 89
accumulating state 336
acquaintance 22, 359
  C++, defined in 23
  compared with aggregation 23
  Smalltalk, defined in 23
Action, see COMMAND
active iterator, see iterator, active
Ada 4, 21
Adaptee
  participant of ADAPTER 141, 141c
ADAPTER 139
  compared with BRIDGE 161, 219
  compared with DECORATOR 184
  compared with PROXY 216
  in catalog summary 8
Adapter
  participant of ADAPTER 141, 141c
adapter 140
  class adapter 141, 141c
  object adapter 141, 141c
  parameterized 145
  pluggable, see pluggable adapter
  two-way 143, 143c
adorner 179
Aggregate
  participant of ITERATOR 259, 259c
aggregate object 257
aggregation 22, 359
  C++, defined in 23
  notation for 23
  Smalltalk, defined in 23
Alexander, Christopher xiii, 2, 356, 358
algorithm
  avoiding dependence on 24
  defining steps of 326
  family of 317
  skeleton 327
AlternationExpression 244co, 343
  implemented in Smalltalk 249
aluminum alloy 76
Ambassador, see also PROXY
  C++ idiom 208
AnalogClock 303
analysis object model
  transforming to design object model 353
ancestor class 361, see also class, parent
Anderson, Bruce xi, 357
AndExp 253
Andrew Toolkit
  use of OBSERVER 303
Application 107, 107c, 223o, 224ci, 231, 325, 325c
application programs 25
ApplicationWindow 53, 54c, 55c, 157, 233c, 234c
ArrayCompositor 42c, 315, 315c, 322
ASCII7Stream 183, 183c
aspect of an object 298
AssignmentNode 333c
associations, see also acquaintance, aggregation
  in OMT 364