I published the first installment of an interview with Erich Gamma on Artima. http://www.artima.com/lejava/articles/gammadp.html In it, he says: Do not start immediately throwing patterns into a design, but use them as you go and understand more of the problem. Because of this I really like to use patterns after the fact, refactoring to patterns. One comment I saw in a news group just after patter