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.

## O

object 11, 361
  adapter, see adapter, object
  acquaintance 22
  aggregation 22
  as argument to request 345
  aspect of 298
  avoiding dependence on implementation of 24
  composition, see object composition
  finding
  granularity of 13, see also FLYWEIGHT
  guts 179
  reference 361
  shared, see FLYWEIGHT
  skin 179
  specifying implementation of 14
  specifying interface to 13
object composition 18, 361
  compared with inheritance 18-20
  compared with parameterized types 22
  reuse through 19
object diagram 364, 361
Objects for States, see STATE
Object Modeling Technique 7, 14, 363, 364
Objective C 90, 120, 121, 135, 144
Objectory 363
ObjectWindows
  use of ITERATOR 270
  use of STRATEGY 323
ObjectWorks\SmallTalk, see also Smalltalk
  use of ADAPTER 148-149
  use of DECORATOR 182
  use of FACADE 191
OBSERVER 293
  combined with MEDIATOR 278, 282
  compared with CHAIN OF RESPONSIBILITY 346, 348
  compared with MEDIATOR 346, 348
  in Model/View/Controller 5
  in catalog summary 8
  limiting unexpected updates in 296
Observer 300
  combining with Subject 300
  participant of OBSERVER 294c, 295, 295i, 300c, 347i
OMT, see Object Modeling Technique
operation 11, 361
  abstract 15, 359
  adding to classes 335
  avoiding dependence on specific 24
  class, see class operation
  concrete 327
  dispatch, see dispatch
  hook, see hook operation
  overriding 16
  primitive 327, 329
Orbix
  use of FACTORY METHOD 116
Originator
  participant of MEMENTO 285, 285c, 286i
originator 284
overloading
  used to implement PROXY 211
  used to implement VISITOR 72, 337