23.07.2012 Views

Design Patterns Explained

Design Patterns Explained

Design Patterns Explained

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Alexander's Steps Discussion<br />

Identify patterns<br />

Start with context<br />

patterns<br />

Then, work inward<br />

from the context<br />

Refine the design<br />

Implement<br />

Chapter 11 • How Do Experts <strong>Design</strong>? 193<br />

Identify the patterns that are present in your<br />

problem. Think about your problem in terms of<br />

the patterns that are present. Remember, the<br />

purpose of the pattern is to define relationships<br />

among entities.<br />

Identify the patterns that create the context for the<br />

other patterns. These should be your starting<br />

point.<br />

Look at the remaining patterns and at any other<br />

patterns that you might have uncovered. From<br />

this set, pick the patterns that define the context<br />

for the patterns that would remain. Repeat.<br />

As you refine, always consider the context implied<br />

by the patterns.<br />

The implementation incorporates the details dictated<br />

by the patterns.<br />

Using Alexander in software design: a<br />

personal observation.<br />

The first time I used Alexander's approach, I took his words too<br />

literally. His concepts— rooted in architecture— do not usua lly<br />

translate directly to software design (or other kinds of design). In<br />

some ways, I was lucky in my early experiences in using design<br />

patterns in that the problems I solved had the patterns follow<br />

pretty well-defined orders of context. However, this also worked<br />

against me in that I naively assumed that this method would<br />

work in general (it does not).

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

Saved successfully!

Ooh no, something went wrong!