23.07.2012 Views

Design Patterns Explained

Design Patterns Explained

Design Patterns Explained

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

FilterlnputStream class, 250<br />

flexible code, problem requiring, 45, 57<br />

forces, design pattern, 79<br />

Fowler, Martin, 13, 154<br />

Fowler's perspectives, 13-14, 15-16, 21<br />

frameworks, defining, 287<br />

functional decomposition<br />

and code changes, 5, 7-10<br />

defined, 4-5, 26, 27<br />

example of, 4<br />

problems with, 5, 8, 10<br />

functions<br />

changing, 9<br />

organizing code around objects instead<br />

of, 14<br />

G<br />

Gamma, Erich. See Gang of Four<br />

Gang of Four<br />

and aggregation vs. composition, 32<br />

authors included in, 69 and designing<br />

for change, 231 and encapsulation, 115,<br />

140 and new perspective on design<br />

patterns, 110 and pattern<br />

classification system,<br />

263-265<br />

seminal work on design patterns, 69, 78<br />

and specific design patterns Abstract<br />

Factory pattern, 163 Adapter pattern, 96<br />

Bridge pattern, 123 Decorator pattern,<br />

243 Facade pattern, 87 Factory Method<br />

pattern, 287 Observer pattern, 265, 266<br />

Singleton pattern, 256 Strategy pattern,<br />

237 Template Method pattern, 280 and<br />

strategies for creating good designs,<br />

85 garbage collection,<br />

25-26, 152<br />

Index 329<br />

Gardner, Karen, 77<br />

generalized classes, 114<br />

geometry<br />

CAD/CAM, 48<br />

object-oriented, 54 getEdgeType<br />

method, 212 get Length method, 213<br />

getLocation method, 213 GoF<br />

reference, 79 gut instinct, paying<br />

attention to, 65<br />

H<br />

has-a relationship, 31, 34-35, 214<br />

Helm, Richard. See Gang of Four<br />

hiding data, 1, 20, 112, 113, 140<br />

hierarchies<br />

avoiding large, 85, 223<br />

creating parallel, 287<br />

I<br />

implementation, decoupling abstraction<br />

from, 123-124, 133, 145-146<br />

implementation perspective, 13-14, 16,<br />

110-111, 119<br />

Implementor class, 151<br />

inheritance<br />

alternate way of using, 114— 115<br />

avoiding large hierarchies, 85, 223<br />

defined, 21, 27<br />

favoring object composition over, 233,<br />

235<br />

and is-a relationships, 18<br />

overusing, 65, 133-134<br />

input/output, stream, 248-250<br />

InputStream class, 250 instance,<br />

17, 21, 27 instantiation<br />

and abstract classes, 19<br />

and Bridge pattern, 152<br />

defined, 17, 27<br />

and Factory Method pattern, 287, 288

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!