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.

Thinking in <strong>Patterns</strong><br />

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

You have learned several patterns and have seen Alexander's phi- The steps to thinking<br />

losophy of design: start with the big picture and add details. To in patterns<br />

accomplish this on a software project, I use the following steps:<br />

1. Find the patterns I have in my problem domain. This is the set<br />

of patterns to be analyzed.<br />

2. For the set of patterns to be analyzed, do the following:<br />

a. Pick the pattern that provides the most context for the other<br />

patterns.<br />

b. Apply this pattern to my highest conceptual design.<br />

c. Identify any additional patterns that might have come up.<br />

Add them to the set of patterns to be analyzed.<br />

d. Repeat for the sets of patterns that have not yet been<br />

analyzed.<br />

3. Add detail as needed to the design. Expand the method and class<br />

definitions.<br />

Admittedly this works only when you can understand the entire<br />

problem domain in terms of patterns. Unfortunately, this does not<br />

happen all the time. <strong>Design</strong> patterns give you the way to get<br />

started and then you have to fill in the rest by identifying relationships<br />

amongst the concepts in the problem domain. The method<br />

for doing this uses commonality/variability ana lysis and is outside<br />

the scope of this book. However, you can get more information<br />

about CVA on this book's Web site at http://www.netobjectives.com/<br />

dpexplained.<br />

Thinking in <strong>Patterns</strong>: Step 1<br />

In the previous chapters, I identified four patterns in the CAD/CAM 1. Identify the<br />

problem. They are: patterns

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

Saved successfully!

Ooh no, something went wrong!