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.

Chapter 12 • Solving the CAD/CAM Problem with <strong>Patterns</strong> 2O1<br />

If you have several other patterns, it may look like this process This doesn't take could<br />

get very involved. That tur ns out not to be the case. With a very long little experience,<br />

many of the patterns can easily be eliminated up front from contention for the primary<br />

pattern. Usually, you have to deal with only a handful or so.<br />

In this case, there are few enough combinations that we can look at<br />

all of the possibilities.<br />

What exactly do we mean when we say one pattern creates the We look for what<br />

context for another? One definition of context is the interrelated creates context<br />

conditions in which something exists or occurs— an environment, a setting.<br />

In the courtyard example in Chapter 11, "How Do Experts <strong>Design</strong>?"<br />

Alexander said that a porch exists in the context of the courtyard.<br />

The courtyard defines the environment or the settings in which the<br />

porch exists.<br />

A pattern in a system often relates to other patterns in the system by<br />

providing a context for these other patterns. In your analysis, it is<br />

always valuable to look for whether and how a pattern relates to the<br />

other patterns, to look for the contexts that the pattern creates or<br />

provides for the other patterns as well as those contexts in which the<br />

pattern itself exists. You may not be able to find these every time.<br />

But, by looking, you will create higher-quality solutions.<br />

Looking for context is an essential tool to add to your bag of analysis<br />

and design tools.

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

Saved successfully!

Ooh no, something went wrong!