Object Oriented Programming Techniques
First Edition Juli 2007
ISBN 978-0-596-52846-1
Weitere Informationen zu diesem Buch
Inhaltsverzeichnis |
Index |
Probekapitel |
Rezensionen |
Index
[ A ], [ B ], [ C ], [ D ], [ E ], [ F ], [ G ], [ H ], [ I ], [ J ], [ K ], [ L ], [ M ], [ N ], [ O ], [ P ], [ Q ], [ R ], [ S ], [ T ], [ U ], [ V ], [ W ],
A[ Top ]
abstract classes, 28, 31, 68, 130
interfaces, versus, 46
naming conventions, 30
purpose, 33
Abstract Component class, 135
abstract decorator class, 136
abstract functions, 336, 355
abstract interfaces, 67
abstract methods, 67
AbstractClass.as, 31, 338
abstraction, 11-15
ActionScript 3.0, 12
advantages of, 15
Accord.as, 166
ActionScript 1.0 and SSCA, 483
ActionScript 3.0
abstract classes and, 31, 68
abstract functions and, 355
abstractions in, 12
AMF (Action Message Format), 383
embedded scripts and, 5
implementation, 43
inheritance, 24
Adaptee.as, 180, 183
adapter class, 177
Adapter pattern, 127, 177-185
car steering adapter, 185-193
adapter class, 190
client, 191
existing class, 186
interface conversion, 188-190
car steering with a mouse, 193
class adapters, 181
interfaces and, 177
key features, 178
list display adapter, 194-199
adapter class, 196
clients, 198
existing class, 195
interface conversion, 195
O'Reilly new books list, 199-202
object adapters, 179
minimal example, 179
OOP concepts in, 185
object and class adapters, comparison, 185
summary, 203
Adapter.as, 180, 183
add( ) method, 255
Alert.as, 113
AlertText.as, 115
AlienCannonBall.as, 93
AlienMine.as, 93
AlienShip.as, 95
AlienWeapon.as, 98
ancestors, 24
Append state, 383
AppendState class, 388
AppendState.as, 388
Arrogance.as, 159
.as files, 6
AsciiCharLeafView.as, 441
Audio.as, 346
Auto.as, 165
B[ Top ]
BadImplementation.as, 106
BajaFlight.as, 353
BalloonAnimals.as, 408
BandFace.as, 28
BaseClass.as, 50
Behavioral design patterns, 245
Biz.as, 38
black boxes, 15
black-box reuse, 288
BlueDress.as, 143
BodySegment.as, 229
Bojo.as, 407
Bongo.as, 29
bongo.mp3, 41
Booch, Grady, 12
Bow.as, 144
BtnState.as, 371
BubblePants.as, 412
Bubbles.as, 412
BuildShed.as, 343
Button class, 7
Button scripts, 5
C[ Top ]
Car.as, 190
CarAdapter.as, 190
CarModel.as, 458
CarView.as, 461
Cat.as, 26
CBView.as, 448
CharCodeLeafView.as, 440
Chase.as, 409
ChaseController.as, 466
Checker.as, 417
children, 205
CircleWidget.as, 87
class adapters, 181
inheritance of interfaces and implementations, 182
class inheritance versus object composition, 49
classes
concrete creator classes, 100
creator classes, 66
internal classes, 71, 74
product classes, 66
protected classes, 74
public classes, 71
tight coupling, 181
writing for inheritance, 25
Classic.as, 35
clients, 44, 66
Client-Side ActionScript (CSAS), 382
closed for modification, 67
Cloudy.as, 354
Clown.as, 406, 411
ClownCollege.as, 410, 412
code examples, xvii
code reuse, 33
ColorInkjetPrintjob.as, 80
Command class, 250
Command pattern, 246, 247-255
class diagram, 250
command interfaces, 248
command objects, 248-250
portability, 263
sharing, 263-265
command objects, sharing
invoker, triggering by key presses, 264
command stacks, 266
concrete commands, 249
dynamic command object assignment, 276-280
commands for, 278
context sensitive invoker, 276
setup from the client, 279
encapsulation, 248, 249
implementing undo, 266-270
abstract interface for, 266
concrete commands for, 267-269
undoable commands, client assigned, 269
invokers, 250
key features, 250
minimal example, 251-254
clients, 253
command interface, 251
concrete commands, 251
invokers, 252
receivers, 252
triggers, setting for command invocation, 254
minimal example, macro commands, 255-258
client, macro command object created from, 258
command interface, 255
concrete macro command, 257
two concrete subcommands, 256
number manipulator, 258-263
client, 263
increment and decrement commands, 262
invoker, triggering by button clickes, 260
utility button class, 259
OOP concepts in, 255
podcast radio, 270-??
client assignment of podcasts to push buttons, 275
command to play podcasts, 272
package with utility classes, creating, 271
pushbutton invokers, 274
radio receiver, developing, 272
summary, 281
Command.as, 251
CommandWithUndo.as, 266
Compassion.as, 155
complex interfaces, 47
Component class, 205
Component.as, 135, 149, 207, 218, 224
components, 15
ComponentView.as, 437
Composite class, 206, 209
Composite pattern, 128, 204-217
animation with inverse kinematics, 222
child nodes, accessing, 211
composite airplane, creating, 234-243
airplane damage, calculating, 242
airplane weight, calculating, 240
component and composite classes, 234-237
components, modifying to show damage, 241
composite structure building, 238-240
fuselage, wings, and engines, 237-238
composite structures, building and manipulating, 215
display list, 233
Flash's built in composite structure, 233
key features, 207
minimal example, 207-216
music playlist, 217-222
composite playlists, building, 221
queuing song sequence, 219-221
nodes, removing, 212
parent reference, creating, 212
remove method, implementing, 213
OOP concepts in, 217
snake animation, 222-233
body and tail, building, 229-232
component and composite nodes, creating, 223-225
composite snake, building, 232
controlling movement, 226
inverse kinematics, 223
moving a kinematic pair, 228
snake head, building, 225
summary, 243
Composite.as, 209, 225
CompositeView.as, 438
composition, 49-51
inheritance, versus, 185
object adapters and, 179
Computers.as, 40
concrete classes, 69
concrete commands, 249
concrete creator classes, 100
ConcreteCommand classes, 250
ConcreteCommand.as, 252
ConcreteCommand1.as and ConcreteCommand2.as, 256
ConcreteComponent.as, 137
ConcreteContext.as, 404
ConcreteMacroCommand.as, 257
ConcreteObserver class, 296
ConcreteStrategy.as, 404
Context.as, 403
ControlButtons.as, 274
Controller.as, 434, 447
controllers, 430
Country.as, 35
coupling, 65, 248
Courage.as, 154
creational design patterns, 63
creator classes, 66
Creator.as, CreatorA.as, and CreatorB.as, 71
CSAS (Client-Side ActionScript), 382
D[ Top ]
data design classes, 321-326
bar chart display, 323-324
line graph, 325-326
UIList component, 321-323
deadly sins, 157-160
Deal.as, 170
DecConA.as and DecConB.as, 138
Decorator class, 133
Decorator pattern, 127, 129-132
deadly sins and heavenly virtues game, 148-164
decorating with multiple properties, 151
Decorator pattern
deadly sins and heavenly virtues game
(continued)
good and evil decorators, 153-160
good and evil decorators, implementing, 160-164
multiple concrete components, 149
multiple method concrete decorations, 151
properties and methods, adding, 149
Decorator model, 131
drawbacks of, 176
Flash paper doll, 141-147
component class, 141
concrete classes, 142-145
Decorator class for dressing dolls, 141
implementing the paper doll decorator, 145-147
hybrid car dealership, 164-176
auto options as decorators, 167-170
hybrid car components, 165
user interface, 170-176
key features, 130
minimal abstract Decorator, 135-140
Abstract Component class, 135
abstract Decorator class, 136-138
concrete decorator classes, 138
wrapping components in concrete decorators, 139-140
OOP concepts used with, 132-134
flexibility and adaptability, 134
unwanted inheritance, 132
wrapping, 133
summary, 176
Decorator.as, 136, 151, 168
DecrementCommand class, 262
DecrementCommand.as, 262
DecrementCommandWithUndo.as, 268
DecTest.as, 140
delegation, 51-56
and delegates, 401
dependencies, 66
dependency rot, 337
managing, 45
design patterns, 1, 3, 42-57
Adapter pattern (see Adapter pattern)
behavioral patterns, 245
choosing a pattern, 61
client and request, 44
Command pattern (see Command pattern)
complex interfaces, 47
Composite pattern (see Composite pattern)
composition, 49-51
composition, inheritance, and instantiation together, 56
creational patterns, 63
Decorator pattern (see Decorator pattern)
delegation, 51-56
dependency, managing, 45
design pattern classifications, 61
essential principles, 42
Factory Method pattern (see Factory Method pattern)
implementations, 43
improving OOP with, 61
interfaces versus implementations, 45
meeting client goals with, 60
Model-View-Controller pattern (see MVC pattern)
multiple design patterns, 425
Observer pattern (see Observer pattern)
Singleton pattern (see Singleton pattern)
state, 43
State pattern (see State pattern)
Strategy pattern (see Strategy pattern)
Structural patterns, 127
Symmetric Proxy pattern (see Symmetric Proxy pattern)
Template Method pattern (see Template Method pattern)
Design Patterns: Elements of Reusable Object-Oriented Software, xii, xviii
Dick.as, 150
Diligence.as, 156
DirectionGaugeView.as, 464
Disappear.as, 408
display lists, 233
display object containers, 233
display objects, 223, 233
displayObject( ) function, 47
DoBusiness.as, 41
Document class, 6
document class, 69, 207
Dog.as, 26
Dogmatisms.as, 159
DoHasBase.as, 51
doMoveCar( ) method, 188
DoMusic.as, 119
DoMusicBtn.as, 120
DoVid.as, 48
Dresser.as, 142
DynamicControlButtons.as, 277
DynamicText.as, 494
E[ Top ]
ECOOP, 470
EmailCheck.as, 418
encapsulate what varies, 337
encapsulated algorithms, 401
encapsulating variation, 400
encapsulation, 15-24, 248
purpose, 16
enter frame event handler, 188
Escape.as, 167
execute( ) method, 250, 251
extensiblilty planning, 57-60
F[ Top ]
factories, 66
Factory Method Minimalist.fla, 69
Factory Method pattern, 63, 65-68
color printing example, 80-83
clients, 83
new creator classes, 81
new product classes, 80
parallel class hierarchies, 83
concrete creator classes, 100
creator classes, 66
key OOP concepts, 84
minimal example, 69-74
clients, 72
creator classes, 71
product classes, 70
product classes, hiding, 73
object creation and reduction of coupling, 84
parameterized factory methods, 79
integrating, 81
print shop example, 74-79
clients, 78
creator classes (print centers), 76
extension, 78
product classes (print jobs), 75
product classes, 66
Sprite factory, 84-90
clients, 89
creator classes (shape creators), 87
product classes (shape widgets), 85
summary, 100
vertical shooter game, 90-100
clients, 100
creator classes, 97-99
product classes, 91-97
factory methods, 67
FallDown.as, 409
FancyPrintCenter.as, 79
FashionShow.as, 145
favor object composition over class inheritance, 49-51, 56, 285, 288
FilledCircleWidget.as, 87
FilledShapeCreator.as, 89
FilledSquareWidget.as, 87
Flash CS3, xiv
document class, 69
MovieClip and Button objects, making classes from, 7
Flash Media Server 2 (see FMS2)
Flash paper doll, 141-147
component class, 141
concrete classes, 142
concrete component class, 142
concrete decorator classes, 143
Decorator class for dressing dolls, 141
implementing the paper doll decorator, 145-147
Flex 2, xiv, xv
FlightPlan.as, 353
FMS2 (Flash Media Server 2), xiv, xv
State pattern and, 383
G[ Top ]
Gamma, Erich, xii
Gang of Four (GoF), xiv
generic concrete decoration, 152
Geostationary Satellite Server, 443
getInstance( ) function, 108
GoF (Gang of Four), xiv
GPS.as, 169
GPSView.as, 465
granularity, 59, 414
Guitar.as, 28
H[ Top ]
HasBase .as, 50
Hat.as, 144
Head.as, 226
HeatedSeat.as, 168
heavenly virtues, 153-156
Heliotis, James, 470
Helm, Richard, xii
HeroCannonBall.as, 93
HeroShip.as, 96
HeroWeapon.as, 98
HighVolPrintCenter.as, 77
Hollywood Principle, 333, 337
hook operation, 334, 351-356
Baja flight example, 352-356
uses for, 352
Hope.as, 154
hybrid car dealership, 164-176
auto options as decorators, 167-170
hybrid car components, 165
Auto abstract components, 165
hybrid car classes concrete components, 166
user interface, 170-176
Flash document creation, 174
implementing concrete components and decorators, 175
I[ Top ]
ICar.as, 458
IChaseHandler.as, 466
ICompInputHandler.as, 446
IKeyboardInputHandler.as, 433, 460
IMacroCommand.as, 256
IModel.as, 445
implementations, 43
interfaces, versus, 30, 45
ImplementSub.as, 32
ImplementSubChange.as, 34
IncrementCommand class, 262
IncrementCommand.as, 262
IncrementCommandWithUndo.as, 267
Indifference.as, 160
INewModel.as, 452
inheritance, 24-34
abstract classes and, 31
advantages and disadvantages, 288
class adapters and, 181
classes, writing for, 25
composition, versus, 185
multiple inheritance, 182
InkjetPrintjob.as, 76
instance names, 7
Integrity.as, 153
interfaces, 28, 67
abstract classes, versus, 46
Adapter pattern and, 177
Adapter pattern, conversions by, 188-190
complex interfaces, 47
implementations, versus, 30, 45
implementing polymorphism, 37
naming conventions, 30
purpose, 33
internal classes, 71, 74
inverse kinematics, 223
Invoker.as, 253
InvokerKeyboard.as, 264
InvokerPanel.as, 261
invokers, 250
ITarget.as, 183
IVid.as, 47
J[ Top ]
Jane.as, 150
Jazz.as, 36
Johnson, Ralph, xii
Juggle.as, 408
Justice.as, 156
K[ Top ]
KeyboardInputView.as, 461
Koka.as, 407
L[ Top ]
Leaf.as, 208
legacy object, 177
LegacyCar.as, 186
ListDisplay.as, 195
ListDisplayField.as, 196
loosely coupled designs, 84, 248, 251, 430, 443
LowVolPrintCenter.as, 77
M[ Top ]
macro commands, 255-258
client, macro command object created from, 258
command interface, 255
concrete macro command, 257
two concrete subcommands, 256
Main class, 69, 72
Main.as
Command pattern example, 253
Main.as (Adapter pattern), 180, 184, 192
Main.as (Composite pattern), 210, 215, 226, 239
updated constructor in, 232
Main.as (document class), 198, 201
Main.as (Factory Method pattern), 72
Main.as (MVC pattern), 436, 462
MainDual.as, 161
maintenance, 57-60
extensiblility, adding, 59
MakeSound.as, 30
Malice.as, 157
MapTypeController.as, 454
MapView.as, 449
Mariner.as, 166
Media.as, 53
metamorphosis, 34
methods, public versus protected attributes, 72
Model.as, 141, 432, 445
models, 430
Model-View-Controller pattern (see MVC pattern)
modules, 15
MoveButton.as, 495
MovieClip class, 7
MovieClip scripts, 5
MP3.as, 169
Mp3.as, 53
MP3Player.as, 39
Muff.as, 145
MultifunctionPrintJob.as, 79
multiple design patterns, 425
multiple inheritance, 182
MVC (Model-View-Controller) pattern, 425, 427-431
cars, 457-466
building the car, 462
chase car, adding, 466-468
controller, 460
custom views, 463-466
direction guage view, 464
GPS view, 464
model, 458-459
views, 461
communication between elements, 428
embedded patterns in, 430
infrared weather maps, 451-457
controllers, adding, 454
models, adding, 452
MVC triad, building, 456
views, adding, 454
integration of Observer, strategy, and Composite patterns, 468
key features, 442
minimal example, 431-442
controller, concrete strategy in a Strategy pattern, 433
model, concrete subject in Observer pattern, 431-433
MVC triad, building, 435
nested views, 436-441
view as concrete observer in Observer pattern and context in Strategy pattern, 434
OOP concepts in, 443
summary, 468
weather maps, 443-451
controller, 446
model element, 444
model, setting to self-update, 451
MVC triad, building, 450
views, 447
MyClient.as, 45
Myers, Tom, 4
MyObject.as, 44
N[ Top ]
Nakhimovsky, Alexander, 4
nested views, 436-442
and Composite pattern,, 436
building the structure, 441
net.ObjectEncoding class, 382
NetBtn.as, 370
new keyword, 65
NewHighVolPrintCenter.as, 82
NewLowVolPrintCenter.as, 81
NewModel.as, 453
NewPrintCenter.as, 81
O[ Top ]
Obfuscation.as, 158
object adapters, 179
minimal example, 179
object composition, 285
class inheritance, versus, 49
object-oriented programming (see OOP)
Observer pattern, 246, 282-289
adding states and identifying users, 294-302
ConcreteObserver class, 296
multiple states, 295
newspaper subscription, 300-302
updated Observer, 297-300
different data displays, working with, 318-330
concrete classes, 319
data design classes, 321-326
main class, pulling elements together in, 327-330
output designer, 318
dynamically changing states, 302
key features, 283
minimal abstract Observer, 289-294
space battle game, 302-317
battles, recording, 303
concrete classes, 303-306
launching a battle, 306-317
summary, 330
OOP (object-oriented programming), 3, 10-42
abstraction, 11-15
advantages of, 15
Adapter pattern, key OOP concepts in, 185
code reuse, 33
Command pattern, OOP concepts in, 255
Composite pattern, OOP concepts in, 217
composition versus inheritance, 185
Decorator pattern, OOP concepts used with, 132-134
design patterns, improving with, 61
encapsulation, 15-24
Factory Method pattern, concepts used in, 84
four basic concepts, 11
inheritance, 24-34
meeting client goals with, 60
multiple inheritance, 182
MVC pattern, OOP concepts in, 443
open-closed principle, 67
polymorphism, 34-42
procedural programming languages, versus, 5
Singleton pattern, concepts used in, 102-105
State pattern, OOP concepts used with, 360
Strategy pattern, OOP concepts used with, 400-402
delegation and delegates, 401
encapsulating variation, 400
Symmetric Proxy pattern, OOP concepts used with, 475
communication flexibility, 476
game flexibility, 476
Template Method pattern, concepts used in, 335
abstract functions and override flexibility, 336
Hollywood Principle, 337
inheritance versus composition, 335
variation, 337
OOPSLA, 470
open for extension, 67
Openness.as, 155
operation( ) method, 209
OrangeDress.as, 143
override statement, 31, 134, 138
P[ Top ]
packages, 69
parallel class hierarchies, 83
parameterized adapter classes, 181
parameterized factory methods, 79
integrating, 81
parameters, 66
parents, 205
PasswordVerify.as, 419
Passwork.as, 417
PauseState.as, 377, 387
Plasma.as, 38
plasma.flv, 41
PlayAbstract.as, 14
PlayAudio.as, 54
Playlist.as, 218
PlayMedia .as, 349
PlayMusic.as, 36
PlayPodcastCommand.as, 272
PlayState.as, 365, 369, 376, 386
PlayTune.as, 348
PlayVideo.as, 12, 54, 347
PlayVideoAbstract class, 14
PlayVideoAbstract.as, 13
Podcast XML feed, 271
podcasts, 270
polymorphism, 34-42, 217, 360
interfaces, implementing with, 37
Polymorphism.as, 35
Prejudice.as, 158
PrintCenter.as, 76
Printjob.as, 76
Prius.as, 166
procedural programming, 4
product classes, 66
Product.as, Product1.as, and Product2.as, 70
program to interfaces over implementations, 45, 285
Projectile.as, 92
protected classes, 74
proxygame.asc, 484
public classes, 71
public statement, 31
PublicClass.as, 104
R[ Top ]
Radio.as, 273
Rage.as, 157
RBView.as, 455
RearViewVideo.as, 169
receiver class, 272
Receiver.as, 252
Receiver1.as and Receiver2.as, 257
Record state, 383
RecordAudio.as, 55
RecordMedia.as, 55
RecordState class, 387
RecordState.as, 388
RecordVideo.as, 55
Referee.as, 479
remove( ) method, 214, 255
request, 44
return statement, 4
RHController.as, 460
Rock, Paper, Scissors, 470
Rock.as, 35
rocket.fla, 7
RootNodeView.as, 440
RPS.as, 481
S[ Top ]
Schreiner, Axel, 470
scope, 4
sequential programming, 4
Server Side Communication ActionScript (see SSCA)
SetToMusicGenreCommand.as, 278
ShapeCreator.as, 88
ShapeWidget class, 85
ShapeWidget.as, 86
ShedMaker.as, 342
Ship.as, 94
ShipCreator.as, 99
ShopCart.as, 122
ShowText.as, 420
simpleFactory( ) method, 66
SimpleSort.as, 419
single responsibility principle, 443
Singleton pattern, 63, 101-105
classic singleton, 103
key features, 101
minimal abstract singleton, 105-112
instantiation method, 108
one instance, different references, 109-112
private class parameter, instantiation with, 106-108
model, 102
one instance, multiple references, 112
OOP concepts used in, 102-105
private class constructors, creating and using, 103
private classe instances, creating, 104
private class constructors, 103
private statci instantiation of an instance, 103
public static functions for creating class instances, 103
summary, 125
usage, 112-125
alert message, 113-116
music playback, 116-121
shopping cart, multiple references, 121-125
Singleton.as, 106, 110
SingletonTest.as, 111
Skits.as, 409
Song.as, 219
SortAll.as, 420
SortBack.as, 420
SortWork.as, 418
Soul.as, 162
space battle game, 302-317
battles, recording, 303
concrete classes, 303-306
launching a battle, 306-317
building android space station and beam, 309
building spaceships, 306
building weapons, 307
change handler, writing, 311-317
Flash document setup, 306
spaghetti programs, 4
Sprite class, 84
DisplayObject and DisplayObjectContainer classes, 233
Sprite factory, 84-90
cleints, 89
shape creators, 87
shape widgets, 85
Sprite objects, 6
SquareWidget.as, 86
SSCA (Server Side Communication ActionScript), 483, 485
state, 43
state engine, 43
state machines, 6, 358
State pattern, 246, 357-361
adding states, 374-382
adding behaviors, 375-382
Pause state, 374
adding states and streaming capabilities, 382-396
ActionScript 3.0, preparing for FMS2, 382
adaptable states, 383
FMS2, special concerns regarding, 383
key features, 357
minimal abstract pattern, 361-367
abstract state machine, testing, 364-367
context class, 363
OOP concepts used with, 360
State model, 358
design structure, 360
transitions, 359
triggers, 359
summary, 397
video player application, 367-374
State.as, 362, 366, 368, 375, 384
statecharts, 358
static Instance( ) method, 102
SteelShed.as, 343
Stop state, 383
StopState.as, 365, 368, 375, 385
Strategy pattern, 246, 398-402
clown employment agency, 406-414
adding functionality, 411-414
context class and concrete contexts, 406
Skits interface and implementations, 409
subclass organization, 414
testing, 410
Tricks interface and implementations, 407
key features, 399
minmal abstract pattern, 402-405
adding a strategy, 403
completion and testing, 404
delegation to ConcreteContext class, 404
delegation, using with the Context class, 403
strategy details, 403
OOP concepts used with, 400-402
delegation and delegates, 401
encapsulating variation, 400
strategy model, 399
string strategies, 414-422
checking strategies, 418
context classes, 416
sort strategies, 419
strategy classes, 417
support classes, 420
testing, 421
summary, 423
Strategy.as, 403
StringChecker.as, 416
StringWork.as, 418
Structural design patterns, 127
Subclass.as, 32
SubclassChange.as, 33
subclasses, 26
abstract classes, extension of, 68
Sue.as, 142
superclasses, 26
Symmetric Proxy pattern, 426, 469-475
button controls, 495
classes and document files support, 494
description, 473
dynamic output text fields, 494
Flash file and connection Movie Clip, 496
Internet, information shared over, 483
Internet, proxies, and players, 472
key features, 474
cell, 474
proxy, 474
methods, 480
move making, 491
dual moves, 492
event to move, 491
proxy moves, 492
referee object, 492
OOP concepts used with, 475
communication flexibility, 476
game flexibility, 476
player interface, 477
player-proxy classes, 486-491
players, 470
Referee class, 478
referees, 471
RPS subclass, 481
second player class, 493
summary, 498
template methods, 481
SymPlayer.as, 478
SymPlayer1.as, 487
T[ Top ]
Tail.as, 231
Target.as, 180
Template design pattern, 246
template method, 332
template method algorithm, 331
Template Method pattern, 331-337
employing flexibility, 341-344
hook operation, 351-356
Baja flight example, 352-356
uses for, 352
key features, 333
minimal abstract template method, 338-340
bare bones template method, 338
testing, 340
OOP concepts used in, 335
abstract functions and override flexibility, 336
Hollywood Principle, 337
inheritance versus composition, 335
variation, 337
pattern model, 334
sound and video, selecting and playing, 344-350
concrete classes, 346
detail classes, 347
format, setting up, 344
user interface, 349
summary, 356
TestCart.as, 123
TestFMS.as, 391
TestMedia.as, 55
TestPause.as, 379
TestPets.as, 27
TestRocket.as, 9
TestState.as, 366
TestStrategy.as, 404
TestStringStrategy.as, 421
TestTemplate.as, 340
TestVid.as (State pattern), 372
TextButton.as, Command pattern, 260
TextDisplayField.as, 271
TextShow.as, 421
Tidwell, Jennifer, 60
tight coupling, 181
TimedInvoker.as, 254
Timeline scripts, 6
Tricks.as, 407
Tuner.as, 118
U[ Top ]
Umbrella.as, 144
undo( ) command, 266
UndoLastCommand.as, 268
unencapsulated algorithms, 400
UnfilledShapeCreator.as, 88
utility button class, 259
V[ Top ]
vertical shooter game, 90-100
clients, 100
creator classes, 97-99
ShipCreator class, 99
Weapon class, 97
product classes, 91-97
projectiles, 91-94
space ships, 94-97
Vid.as, 346
VidAudio.as, 345
VideoFlash.as, 53
VideoWorks.as, 363, 369, 378, 389
VidPlayer.as, 47
View.as, 434
views, 430
Vlissides,John, xii
W[ Top ]
Weapon.as, 97
whizbang.gif, 41
WoodShed.as, 342
WorkgroupPrintjob.as, 76
Wrapper pattern, 133
wrapping, 133, 139
Zurück zu ActionScript 3.0 Design Patterns
