Am familiar with the Head First book (in fact, thought it was brilliant), though sometimes it left me a bit confused with regard to patterns overlapping somewhat. But not really tried before to sit down and match a pattern from theory with a real world requirement.
Well, we now have a requirement for which I think we should be thinking in terms of patterns. Our client sells a bunch of products, all of which are highly configurable by his customers. For each sale we need to capture the customer's choice of width, height, colours, and a bunch of other technical stuff. Broadly the products are 80% similar in terms of all this data but they are different enough to make it complicated.
This feels like a "classic" requirement so that's why I am thinking patterns. Is it ... er .. strategy pattern? Or maybe decorator? If not, which pattern is it?
In case you need to know what we'll do with the customer's selections ... this will help to calculate cost price, affect commissions etc. These are operations which again are broadly going to work the same way for each product but may in some cases vary significantly from product to product.
We tried once before to implement this by simply subclassing the products and it got messy and that part of the project was abandoned. Our inept solution is described in the Head First book as an elementary mistake {blush} within about the first five pages.