The majority of developers have already heard about design patterns, GOF (Gang Of Four)patterns are the most popularized, and each developer has his way to learn them , we can enumerate:

  • Reading a book or a magazine.
  • From web sites.
  • From a collegue.
  • Doing a training.

Regardless of the method choosed, we can learn by heart the patterns and spent hours to memorize their UML diagrams, but sometimes when we need to use them in a real project, it becomes more problematic.

What’s very important is not to know exacly pattern names and how to implement them as described in the documentation, but what’s more relevant is the motivitations behind each pattern, because it’s from motivations that we invent the patterns.

Here's a JBoss design analysis to discover the creational patterns used.