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.

S

scope of design pattern, see design pattern, scope
Scrollbar 50c
ScrollDecorator176o, 176c
Scroller 45, 46o
Self 4, 121, 309
sender
decoupling from receiver 346
SequenceExpression 244co, 343
implemented in Smalltalk 249
sequencing requests 234
shallow copy, see copy, shallow
Shape 139, 140c, 146
shrinkability 320
signature 13, 361
SimpleCompositor 42, 42c, 315, 315c, 321
single static assignment form, SSA 172
single-dispatch, see dispatch, single
SINGLETON 127
C++ implementation 129, 131
in catalog summary 9
registry of 130
subclassing 130
used to implement ABSTRACT FACTORY 90
Singleton
participant of SINGLETON127c, 128
Sketchpad 125
SkipList 258c, 265
skiplist 258
Smalltalk-80, see also ObjectWorks\Smalltalk, Smalltalk/V
use of BUILDER105
use of COMPOSITE172
use of FACTORY METHOD 115
use of INTERPRETER251
use of ITERATOR 270
use of OBSERVER 303
use of SINGLETON133
use of VISITOR 344
Smalltalk/V
use of INTERPRETER251
use of MEDIATOR 278, 281
smart pointers 209
smart references 209
software platform
isolating application from 24
Solitaire, see SINGELTON
SolverState283-284
SPECTalk
use of INTERPRETER255
spelling checking 64
SpellingChecker 71-73
SpellingCheckerVisitor75
StandardMazeBuilder 103
STATE 305
C++ idiom for, see envelope-letter idiom
in catalog summary 9
use of delegation in 21
State
participant of STATE 306, 306c
state
accumulating during traversal 336
avoiding inconsistent 308
extrinsic 196
incremental changes to 287
intrinsic 196
sharing 308, see also FLYWEIGHT
state transitions
atomic 308
defining 308
table-driven 308
STRATEGY 315
compared with DECORATOR 179
in catalog summary 8
Lexi's use of 42
use in Choices 193
use in Model/View/Controller 6
use of delegation in 21
Strategy 180o
making optional 320
participant of STRATEGY316c, 316
strategy 315
Stream 183, 183c
StreamDecorator183, 183c
stretchability 320
Stroustrup, Bjarne 160
structural pattern 10, 137
comparison between class and object scope 137
discussion of 219
subclass, see class, subclass
subclassing
extending functionality by 24
Subject 301
avoiding dangling references to 297
combining with Observer300
participant of OBSERVER 294c, 295, 295i, 300c, 347i
participant of PROXY 209co, 210
subject 294
mapping to observers 297
observing more than one 297
subsystem 361
simplifying interface to, see FACADE
subtype, see type, subtype
successor 224
connecting in chain 227
implementing chain of 225
superclass 361, see also class, parent
supertype, see type, supertype
Surrogate, see PROXY
Sutherland, Ivan 125
swaps 323