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.
C
- C
4
- Calder, Paul
33,
38
- callback function
235
- Caretaker
- participant of MEMENTO
285,
285c,
286i
- Cargill, Tom
308
- CHAIN OF RESPONSIBILITY
223
- combined with Composite
166,
232
- compared with MEDIATOR
348
- compared with OBSERVER
348
- defined by parent references
166,
232
- in catalog summary
8
- use of delegation in
21
- ChangeManager
,
299,
300c
- Character
38,
38c
- character
- represented as object
38,
195-196
- Cheshire Cat
155
- Choices operating system
- use of Facade
192
- use of PROXY
209
- class
14,
359
- abstract, see abstract class
- adapter, see adapter, class
- compared with type
16
- concrete, see concrete class
- derived
360
- friend, see friend class
- inability to alter
24
- inheritance, see inheritance
- instance
15
- library, see toolkit
- mixin, see mixin class
- notation for
15,
363
- parent
15,
361
- subclass
15
- template, see template
- class diagram
363,
365c,
359
- class hierarchy
- adding operations to
356
- connecting parallel
109,
258
- explosion
25,
43,
151,
177
- minimizing size of
113,
120,
177,
277,
317,
348
- visiting multiple
336
- class operation
359
- alternatives provided by Singleton
128
- Client
- participant of ABSTRACT FACTORY
88c,
89
- participant of ADAPTER
141,
141c
- participant of Builder
98,
98c,
99i
- participant of CHAIN OF
RESPONSIBILITY
225ci,
226,
348i
- participant of COMMAND
236,
236c,
237i
- participant of Composite
164c,
165
- participant of Flyweight
198c,
199
- participant of Interpreter
245c,
246
- participant of PROTOTYPE 119,
119,
119c
- client
11
- isolating concrete classes from
89
- ClockTimer
302
- clone operation
117
- used in PROTOTYPE
117
- implementing
121
- cloned object
117
- initializing
121
- CLOS
4,
260,
338
- closure
260,
267
- Coad, Peter
357
- code structure
- run-time versus compile-time
23
- CodeGenerationVISITOR
332c
- Colleague
- communicating with MEDIATOR
278,
282
- participant of MEDIATOR
276co,
277,
348i
- COMMAND
233
- combined with MEMENTO
239,
287
- combined with PROTOTYPE
238
- in catalog summary
8
- use in Lexi
64
- COMMAND
60,
61c,
233,
233c,
239
- configured in MenuItem
61
- history of
62
- participant of COMMAND
236,
236c,
237i,
347i
- command
- C++ idiom, see functor
- copying before execution
238
- history, see history list
- implemented through C++ templates
239,
240
- intelligence of
238
- common vocabulary
352
- communication
- encapsulated or distributed
346
- between Strategy and Context
318
- between VISITOR and Element
337
- compilation dependencies
- reducing using Facade
188
- Compiler
185,
186c,
191
- compiler
- example in Facade
185,
186c,
188
- implemented using VISITOR
331
- Smalltalk, see RTL Smalltalk compiler
- Component
- participant of Composite
164c,
165,
168
- participant of DECORATOR
177,
177c
- Composite
163
- caching children of
169
- child management
167
- combined with Interpreter
255
- combined with ITERATOR
262
- combined with VISITOR
339
- compared with DECORATOR
219,
220
- compared with Interpreter
247
- data structure for
169,
170
- in catalog summary
8
- interface of
167
- Lexi's use of
40
- parent references
166
- sharing components
166
- use in Model/View/Controller
5
- Composite
- participant of Composite
164c,
165,
165o,
168
- CompositeEquipment
171
- Composition
41,
42c,
315,
315c,
320
- composition, see object composition
- Compositor
41,
42,
315,
315c,
321
- interface
41
- CompressingStream
183c,
184
- concrete class
15,
359
- avoiding specification of
24
- isolating clients from
89
- ConcreteAggregate
- participant of ITERATOR
259,
259c
- ConcreteBuilder
- participant of Builder
98c,
99,
<99i
- ConcreteCOMMAND
- participant of COMMAND
236,
236c,
238
- ConcreteComponent
- participant of DECORATOR
177,
177c
- ConcreteDECORATOR
- participant of DECORATOR
177c,
178
- ConcreteElement
- participant of VISITOR
334,
334c,
335i
- ConcreteFactory
- participant of ABSTRACT FACTORY
89
- ConcreteFlyweight
- participant of Flyweight
198co,
199
- ConcreteHandler
- participant of CHAIN OF
RESPONSIBILITY
225c,
226
- ConcreteImplementor
- participant of BRIDGE
153c,
154
- ConcreteITERATOR
- participant of ITERATOR
259,
259c
- ConcreteOBSERVER
- participant of OBSERVER
294c,
295,
295i
- ConcreteProduct
- participant of ABSTRACT FACTORY
88,
89
- participant of FACTORY METHOD
108,
108c>
- ConcretePROTOTYPE
- participant of PROTOTYPE
119,
119c
- ConcreteState
- participant of STATE
307,
307c
- ConcreteStrategy
- participant of Strategy
316c,
316
- ConcreteSubject
- participant of OBSERVER
294c,
295,
295i
- ConcreteVISITOR
- participant
334,
334c,
335i
- conditional statements
- avoiding using STATE
307
- avoiding using Strategy
317
- consolidation phase of lifecycle
353
- constraint solving
282,
283
- see also ThingLab, QOCA
- ConstraintSolver
283-284,
288
- constructor
360
- Context
252
- participant of Interpreter
245c,
246
- participant of STATE
306,
306c
- participant of Strategy
316c,
316
- control flow
- encapsulating, see MEDIATOR
- inversion of
27
- Coplien, James
125,
153,
160,
242,
313,
357
- copy
- deep
121
- on write
210
- shallow
121
- CountingMazeBuilder
104
- coupling
360
- abstract
188,
278,
296,
359
- loose
24,
26,
277,
347,
see also decoupling
- reducing
24,
187,
188,
223,
226
- tight
24,
- CreateMaze operation
A HREF="chap3-0.htm#CreateMaze-def" onClick="top.load('3');">84
- ABSTRACT FACTORY variant (C++)
92
- ABSTRACT FACTORY variant
(Smalltalk)
94
- Builder variant
102
- FACTORY METHOD variant
114
- PROTOTYPE variant (Smalltalk)
123,
125
- creational pattern
10,
81
- discussion of
135
- Creator
- participant of FACTORY METHOD
108,
108c
- implementation of
111,
113
- Cursor, see ITERATOR
- cursor, see iterator, cursor