Junilu Lacar wrote:I consider that approach an *Anti-Pattern* for applying patterns, actually. What you're doing amounts to saying something like "Ok, now I've learned how to use a hammer, let me go out and try to build a house." Good luck with that, right? You need more than just a hammer to build a house.
I disagree. I think Nik's approach is analogous to having a hammer and trying to find a few small pieces of wood to nail together in the shape of a doll house.
Patterns are things you should keep in your "toolbox" until such time that you recognize that you are facing a problem that has been solved before (the context).
Patterns are things you keep in your toolbox
once you know how to use them. Until then, there is some benefit to getting to them in a controlled environment. By trying various patterns out on toy applications, one gets an intuitive feel for the pros and cons of each pattern, as opposed to just the "Applicability" (or whatever) paragraph memorized by rote from the book.
A better approach would be to go breadth-first and become familiar with a number of patterns, paying particular attention not to the details of their implementations but to the *context* in which each can be applied. Then work on a project, without any preconceived notions of using patterns at all, and try to recognize the kinds of problems that you can solve with a proper application of an appropriate pattern.
I would suggest that approach
after one has had a chance to get to know each one.
Bigger picture...
Our two approaches are probably just reflective of our individual learning styles. Some people can get a good feel for things such as design patterns, including when each one is applicable, just from reading a book. For others, a lot of the information in the books just leaks out unless/until we have a concrete experience to which to attach the information. My suggestions may well not work for you, Junilu, and it's possible that neither of our approaches will work for Nik. At least now Nik has two possible approaches, both of which seem reasonable.