Index
A
abstract factories, 41-42, 44
abstract factory pattern, 41-42
related patterns, 55-56
using, 43-55
abstract mediator, 130-132
abstraction, 10
access, controlling to threads, 84-86
access modifiers
private, 36
protected, 37
public,
sealed, 23
static, 34, 84, 165
adapter pattern, 206-207
related patterns, 212-213
using, 207-212
algorithm classes, exchanging, 175-182
attributes, initializing, 58-64
B
behavioral patterns, 91
chain of responsibility pattern, 92-98
command pattern, 99-107
interpreter pattern, 108-119
iterator pattern, 120-127
mediator pattern, 128-135
memento pattern, 136-144
observer pattern, 145-153
state pattern, 154-173
strategy pattern, 174-183
template pattern, 184-192
visitor pattern, 193-203
bitwise comparisons, 12
bridge pattern, 214-216
related patterns, 222-223
using, 216-221
builder pattern, 57-58
related patterns, 72-73
using, 58-72
builders, 57
C
chain of responsibility pattern, 92-93
related patterns, 97-98
using, 93-97
character objects, instantiating, 257-267
child forms, notifying of changes, 146-152
class, cloning, 76-79
class types,
associating functionality with, 236-245
identifying, 25-39
initializing, 65-72
refactoring, 216-221
clone, 74
code, refactoring, 15
command pattern, 99-100
related patterns, 106-107
using, 100-106
common interface, defining, 43-48
composite pattern, 224-225
related patterns, 233-234
using, 226-233
concrete mediator, 132
context, 256
contract, 51
creational methods, defining, 49-55
creational patterns, 17
abstract factory pattern, 41-56
builder pattern, 57-73
factory pattern, 18-40
prototype pattern, 74-80
singleton pattern, 81-89
D
database transactions, encapsulating, 195-202
date formats, managing, 109-113
decorator pattern, 235-236
related patterns, 245
using, 236-245
deep copy, 78
design patterns,
cross-referencing, 14
dirty updates, 164, 167
domains, bridging, 271-274
E
encapsulation, -
equals implementation, 10, 12
testing, 13
extrinsic state, 256
F
facade pattern, 246-247
related patterns, 253-254
using, 247-253
factories, 18
abstract, see abstract factories
factory pattern, 18-20
related patterns, 39-40
using, 21-39
flyweight pattern, 255-256
related patterns, 267-268
using, 257-267
functionality, sharing, 185-191
H
hashing algorithm, ensuring unique, 11
I
inexact match, 216-217
inheritance, -10
using to identify class types, 35-39
instance, maintaining, 82-88
interface,
interpreter pattern, 108-109
related patterns, 118-119
using, 109-118
intrinsic state, 256
iterator pattern, 120
related patterns, 127
using, 121-126
iterators, 120
K
keywords
lock, 85, 170
synchronized, 85
L
lazy loading, 28
list, moving through elements in, 121-126
lock keyword, 85, 170
logic, encapsulating, 21-24
M
mediator pattern, 128-129
related patterns, 135
using, 129-135
memento pattern, 136-137
related patterns, 144
using, 137-143
message windows, controlling communication between, 129-135
metadata, creating classes from, 114-118
methods, sharing without using direct inheritance, 207-212
mutex, 85-86
O
object-oriented languages, aspects of, -13
objects, sequentially calling methods for, 226-232
observer pattern, 145-146
related patterns, 152-153
using, 146-152
order of operations,
defining, 83-97
encapsulating, 247-252
P
polymorphism, -
portability,
private access modifier, 36
protected access modifier, 37
protection proxy, 269
prototype pattern, 74-75
related patterns, 79-80
using, 76-79
proxies, 269
types of, 269-270
proxy pattern, 269-270
related patterns, 275
using, 271-274
public access modifier,
R
refactoring, 15
reflection, 16, 29
using to identify class types, 25-34
reflective tools, 29-30
remote proxy, 269
repositories, 19
S
sealed access modifier, 23
semaphore, 86
singleton pattern, 81
related patterns, 88-89
using, 82-88
smart pointer, 269-270
smart reference, 269-270
state,
capturing, 137-143
maintaining across threads, 164-172
monitoring, 155-163
state pattern, 154-155
related patterns, 173
using, 155-172
static access modifier, 34, 84, 165
static methods, 82
strategy pattern, 174-175
related patterns, 182-183
using, 175-182
structural patterns, 205
adapter pattern, 206-213
bridge pattern, 214-223
composite pattern, 224-234
decorator pattern, 235-245
facade pattern, 246-254
flyweight pattern, 255-268
proxy pattern, 269-275
subclassing,
synchronized keyword, 85
T
template pattern, 184-185
related patterns, 192
using, 185-191
threads, controlling access to, 84-86
U
undo/redo functionality, adding, 100-106